JAVA初学,这是怎么回事?

int a=3;
int b=4;
则表达式 ++a==b的值为什麽是TURE?
还有一题:
1. boolean passingScore = false && grade == 70;
2. boolean passingScore = false & grade == 70;
表达式grade == 70 在什么地方被计算_____
随便说明为什麽.O(∩_∩)O~

第一题:
==运算符是从左到右开始计算.但考虑运算符优先级,也还是要先算++a的.
先计算++a的值.(简单解释++a,++a表示a的值等于:a+1)
再判断a+1是不是等于b.
因为定义ab都为int类型,a=3,b=4
所以a+1,为:3+1,于是值为4
接着判断,由于4等于4的,所以返回true(真).

**************************************

第二题:
&&和&的运算符是从左到右开始计算.&&有短路规则.
如果出现&&的时候,若表达式中只要有一个值是false(假),那么这个表达式返回的值就是假,由于在:
1. boolean passingScore = false && grade == 70;
这题中, && 左边passingScore已经被定义为false(假),那么,后边的表达式是真是假都不用管了,所以这表达式注定返回的结果是false(假)了,于是直接中断表达式,返回结果为false(假),所以右边的这个grade == 70不会被计算到.

总结,运算符&&是从左到右开始计算,左边若是假,直接中断,右边不会被计算到,返回结果为false(假).

----------------------

2. boolean passingScore = false & grade == 70;
这题中,有&运算符,而&不像&&那样有短路规则.

**************************************

所以表达式grade == 70 在什么地方被计算的答案为:
在这个:
2. boolean passingScore = false & grade == 70;
中被计算.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-21
++a的意思是先吧a加1再计算;所以表示式++a==b的值是true;
boolean passingScore = false && grade == 70;
这个表达式则表示判断passingScore = false和 grade == 70的值的真假,若有一个是假则表达式返回值为假。两个同时为真,表达式为真。
第2个回答  2008-09-21
在JAVA中==产生的是一个boolean值。在上边的语句中。++a就表示在使用a变量时,就自增长了。所以“4”==“4”是相等的。也就返回了ture值。在C++中,==长生的是0或者非0的数,这一点要注意。
第3个回答  2008-09-21
上面的已经说得很清楚了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网