Java语言入门教程(八):Java语言中的运算符与流程控制_第1页
Java语言入门教程(八):Java语言中的运算符与流程控制_第2页
Java语言入门教程(八):Java语言中的运算符与流程控制_第3页
Java语言入门教程(八):Java语言中的运算符与流程控制_第4页
Java语言入门教程(八):Java语言中的运算符与流程控制_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言入门教程(八):Java语言中的运算符与流程控制时间:2011-06-13 csdn博客 taomoon719 -不论使用何种语言,最终都是为了实现业务逻辑。在面向对象的编程语言中 ,业务逻辑都在方法中实现。因此,对于初学者来说,了解完成Java类方法体的 基本知识点是非常必要的。本文中,将介绍编写方法体必须了解的两个方面:运 算符,流程控制。Java中的运算符根据其功能,可以分成4类。首先需要注意的是,Java中的运 算符是不能重载的。下面分别对4类运算符进行介绍。1、 算术运算符:+,-,*,/,%,+,-算术运算符是对基本数据类型进行运算的操作符,其中容易混淆的是/表示除 ,

2、而%表示取余。另外需要注意的是+,-两个自加自减运算符的区别,如下程序 。package com.csst.test;public class Test1 /* * param args */ public static void main(String args) / TODO Auto-generated method stub int i=0; System.out.println(i+); System.out.println(+i); int j=0; System.out.println(j-); System.out.println(-j); +,-在变量后,是先取变量没有运算前

3、的值,当作表达式的返回值,然后进 行运算。而+,-如果在变量前,是先对变量进行运算,然后将运算结果作为表 达式的返回值。需要注意的是,不管在前还是在后,对于参与运算的变量本身, 都是进行了一次加1或者减1的操作,没有区别,有区别的是返回值的值。算术运算符都是针对基本数据类型进行运算的,只有除外,可以使用连 接两个字符串。如:String s=”Hello”+” World”;/String的值是Hello World2、 位运算符:&,|,<<,>>,>>>位运算符是针对二进制的数进行运算的操作符。与操作&的运算规则是两 个都是1才是1

4、,或操作 | 的规则是一个是1就是1,异或 的规则是不同的是1 ,相同的为0。取反操作是1变0,0变1。<<:左移运算符,规则为,抛掉相应位数的高位,在对应的空位补0。 如:0110 1001 << 2 =1010 0100>>:有符号右移,规则为,抛掉相应位数的低位,如果移位前,最高 一位是0,则在对应的高位都补0,如果移位前,最高一位是1,则在对应的高位 都补1。0110 1001 >> 2 =0001 10101110 1001 >> 2 =1101 1010>>>:无符号右移,规则为,抛掉相应位数的低位,在对

5、应的空位 补0:0110 1001 >>> 2 =0001 10101110 1001 >>> 2 =0001 1010注意:右移运算符分有符号和无符号,而左移没有这个区别。另外左移一位 相当于乘2,右移一位相当于除以2,速度比较快。-3、 比较运算符:>,<,>=,<=,= =,!=比较运算符是对基本数据类型的二进制进行比较。需要注意的是表示比 较,表示赋值。另外,和!=可以对引用类型比较,比较的是虚地址。如:String s1=”Hello”;String s2=”Hello”;String s3=new String(“Hell

6、o”);System.out.println(s1=s2);/输出trueSystem.out.println(s1=s3);/输出false4、 逻辑运算符:&,|,!,&&,|在Java语言中,逻辑值使用true和false进行表示,而1和0不表示逻辑,表示 二进制的数。比如:T1&T2,只有当T1和T2都是true时,才返回trueT1|T2:T1和T2只要有一个是true,返回值就是true。T1T2:T1和T2不同的时候,返回ftrue,相同的时候返回false。!T1:T1是true,返回false,T1是false,返回true。&&

7、;,|被称为双与及双或。T1&&T2: 只有当T1和T2都是true时,才返回true。但是与单与& 不同的是,双&会发生短路问题,如T1是false,则不会判断T2的值,直接返回false。而单 与不同,不论T1的值是true还是false,都会判断T2的值。T1|T2:与双与类似,双或当T1为true时,也会发生短路,直接返回true, 而不判断T2。在运算符这个知识点,有以下几点需要注意:1、 记清楚每种运算符是针对什么类型进行运算。比如不能对两个字符串使 用>比较,因为>只比较基本类型。2、 移位运算符中的右移分有无符号两种。3、 比较运算符

8、几乎都用来比较基本数据类型,只有=,!=除外。4、 &&,|的短路问题。了解了Java语言中常用的运算符后,再来看看方法的流程控制。程序的流程 无非3种:1 顺序的:顺序的流程就是一条一条语句执行。2 分支流程:分支是常见的流程,Java语言对分支控制和其他语言类似, 可以使用if,else以及switch case控制,如下代码:package com.csst.test;public class Test2 /* * param args */public static void main(String args) / TODO Auto-generated method

9、stub int x=1; int y=2; if(x=1) System.out.println("x=1"); else System.out.println("x!=1"); switch(y) case 1:System.out.println("1"); case 2:System.out.println("2"); case 3:System.out.println("3");break; default:System.out.println("default")

10、; 该程序运行结果:x=123需要注意的是,if后的括号中,一定是一个布尔值的表达式。而switch的括 号中,可以是byte,short,int,char,enum(Java5以后有的新类型,枚举),其他 类型不可以。另外,y的值是2,打印结果却是2,3。因为case 2后边的语句没有 break来跳出,所以会继续运行,直到遇到第一个break为止。可以说,case后边 的开关值,只是决定了switch流程的入口,但是出口完全取决于break的出现位 置。3、循环逻辑循环逻辑即重复执行某段代码,Java中有三种循环,如for,while,do while, 如下:package com.cs

11、st.test;public class Test3 /* * param args */ public static void main(String args) / TODO Auto-generated method stub for(int i=0;i<3;i+) System.out.println("i="+i); int x=4; while(x>0) System.out.println("x="+x); x-; int y=5; do System.out.println("y="+y); y-; whi

12、le(y>0); 程序运行结果如下:i=0i=1i=2x=4x=3x=2x=1y=5y=4y=3y=2y=1-Java类中,可以在循环逻辑中,使用标签来标记循环,通过 break,continue关键字控制循环,以for循环为例。package com.csst.test;public class Test4 /* * param args */ public static void main(String args) / TODO Auto-generated method stub loop1: for(int i=0;i<4;i+) loop2: for(int j=0;j<3;j+) if(i=j) break; if(i<j) continue loop1; System.out.println("i="+i+" j="+j); 该类中,有两层for循环,分别以loop1,loop2进行标记,如 果break或者continue后没有出现标记,表示控制的是最近的一层循环,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论