第3章运算符、表达式和语句.doc

第3章运算符、表达式和语句.doc

ID:62073826

大小:56.50 KB

页数:10页

时间:2021-04-16

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

《第3章运算符、表达式和语句.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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是先

2、让i加1,再使用i的值。3、混合运算如果在一运算表达式中,含有多种数据类型,那么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/(doub

3、le)b;另外,与C一样,在Java中,char型数据也能与int型数据一样参加运算,如: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

4、〉b==b〈=c理解为(a>b)==(b<=c),且a>b得到true,b〈=c也得到true,所以两者是==的,所以整个表达式的结果为true.5、逻辑运算符与逻辑表达式与C中一样,逻辑运算符有:&&、

5、

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

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

8、|c)显然,参加运算的两个数都是int型,是正确的,在C中其实就是用非0代表真,用0代表假,显然上面的结果是判

9、断a&&b是a和b均是非0可得到结果1如果在Java中,上面的写法是错误的,因为&&和

10、|要求必须是boolean型,可以改为等价的:if(a!=0&&b!=0

11、|c!=0)且&&、|

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

13、

14、所以if(a!=0||b!=0&&c!=0)相当于:if(a!=0

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

16、

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

18、|Opt2!Opt1truetruetruetruefalsetruefalsefalsetruefalsefals

19、etruefalsetruetruefalsefalsefalsefalsetrue观察上面的真值表,可以发现一个问题:对于Opt1&&Opt2来说,如果想要结果为true,必须是Opt1和Opt2均是true,只要有一个是false,那么,结果就是false,显然,假设已经发现Opt1是false,那么其实不管Opt2是true还是false,结果一定是false。换句话说,既然已经知道Opt1是false,那么,不用看Opt2也知道结果一定是false,也就不需要去看Opt2.为了节省时间,在C和Java中都采取了这种所谓的“短路

20、规则”。就是对于Opt1&&Opt2来说,如果已经计算得到Opt1是false,那么根本不会去计算Opt2,这样,Opt1的计算就将Opt2给短路了。如:inta=5,b=-3,c=7;if((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,

21、这就是短路.类似的

22、|也有短路:由于参加运算的Opt1||Opt2的结果,如果Opt1已经是true,那么不管Opt2是true还是false,结果都是true,所以,如果Opt1已经是true,那么Opt2根本不会执行

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

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

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