运算符、表达式和语句

运算符、表达式和语句

ID:34500340

大小:105.50 KB

页数:10页

时间:2019-03-07

运算符、表达式和语句_第1页
运算符、表达式和语句_第2页
运算符、表达式和语句_第3页
运算符、表达式和语句_第4页
运算符、表达式和语句_第5页
资源描述:

《运算符、表达式和语句》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第3章运算符、表达式和语句3.1运算符与表达式Java的运算符与C/C++的运算符几乎一致,且含义与C几乎一致。1、算术运算符与算术表达式有:+、-、*、/、%且与C一样,/具有整数除以整数得到整数的规定:如:inta=5,b=2;doublec=a/b;//因为a和b都是整数,所以结果c得到2,而不是2.5且%也是取余的运算,与C一样,要求%的被除数与除数均是整数,结果的符号也是与被除数一致。2、自增、自减运算符:++、--与C一样:i++++i的区别仍然在于i++是先使用i的值,再让i自己加1,而++i是先让i加1,再使用i的值。3、混合运算如果在一运算

2、表达式中,含有多种数据类型,那么Java的规则与C也一样,基本上是按照从数据的空间从小到大进行自动转换,过程一般为:byte->short->int->long->float->double且参加运算中只要有一个double,那么,结果一定是double类型。所以,如在上面的除法运算中,如果想要得到2.5,可以使用强制类型转换。强制类型转换与C中的使用与语法也是一样的:inta=5,b=2;doublec=a*1.0/b;//可使用的方法:c=(double)a/b;或c=a/(double)b;另外,与C一样,在Java中,char型数据也能与int型数据

3、一样参加运算,如:charch='X';intn=35;n=n+ch;//正确,其中ch的值就取'X'在Unicode中的代码,当然它是英文字母,与ASCII是一致的。4、关系运算符与关系表达式关系运算符有:>、<、>=、<=、==、!=,这与C完全一致且它们的优先级也与C一致:>、<、>=、<=优先级相同==、!=优先级相同且>、<、>=、<=的优先级大于==、!=的优先级。如:inta=5,b=-3,c=7;if(a>b==b<=c)a>b==b<=c理解为(a>b)==(b<=c),且a>b得到true,b<=c也得到true,所以两者是==的,所以整

4、个表达式的结果为true。5、逻辑运算符与逻辑表达式与C中一样,逻辑运算符有:&&、

5、

6、、!其中&&一般为And,

7、

8、一般读为Or、!一般读为Not注意:它们要求参加逻辑运算的两个数都必须是boolean型,而不得是别的类型,这一点上与C是不一样的。如:在C中:inta=5,b=-3,c=7;if(a&&b

9、

10、c)显然,参加运算的两个数都是int型,是正确的,在C中其实就是用非0代表真,用0代表假,显然上面的结果是判断a&&b是a和b均是非0可得到结果1如果在Java中,上面的写法是错误的,因为&&和

11、

12、要求必须是boolean型,可以改为等价的:if(a!

13、=0&&b!=0

14、

15、c!=0)且&&、

16、

17、和!还有优先级的问题:!的优先级大于&&,&&大于

18、

19、所以if(a!=0

20、

21、b!=0&&c!=0)相当于:if(a!=0

22、

23、(b!=0&&c!=0))下面是&&、

24、

25、和!的真值表:操作数Opt1操作数Opt2Opt1&&Opt2Opt1

26、

27、Opt2!Opt1truetruetruetruefalsetruefalsefalsetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue观察上面的真值表,可以发现一个问题:对于Opt1&&Opt2来说,如果想要结果为tr

28、ue,必须是Opt1和Opt2均是true,只要有一个是false,那么,结果就是false,显然,假设已经发现Opt1是false,那么其实不管Opt2是true还是false,结果一定是false。换句话说,既然已经知道Opt1是false,那么,不用看Opt2也知道结果一定是false,也就不需要去看Opt2。为了节省时间,在C和Java中都采取了这种所谓的“短路规则”。就是对于Opt1&&Opt2来说,如果已经计算得到Opt1是false,那么根本不会去计算Opt2,这样,Opt1的计算就将Opt2给短路了。如:inta=5,b=-3,c=7;if(

29、(a++)>1&&(b++)<0)true&&true这样,a++和b++都进行了计算,从而a=6,b=-2但是,如果:if((a++)<1&&(b++)<0)false&&由于已经得到前面的一部分为false,所以,后面的根本不会去计算,从而(b++)<0不会计算,也就是b++不会被执行,从而结果a=6,但是b还是-3,这就是短路。类似的

30、

31、也有短路:由于参加运算的Opt1

32、

33、Opt2的结果,如果Opt1已经是true,那么不管Opt2是true还是false,结果都是true,所以,如果Opt1已经是true,那么Opt2根本不会执行,同样上例:inta

34、=5,b=-3,c=7;if((a++)>1

35、

36、(b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。