黑马程序员技术交流社区
标题:
为什么不打印8呢?也没说非得 是 ”真“才打印啊!
[打印本页]
作者:
zhiyuan0932
时间:
2014-9-19 11:06
标题:
为什么不打印8呢?也没说非得 是 ”真“才打印啊!
写出程序结果
public class Demo
{
private static int j = 0;
private static boolean methodB(int k)
{
j += k;
return true;
}
public static void methodA(int i)
{
boolean b;
b = i < 10 | methodB (4);
b = i < 10 || methodB (8);
}
public static void main (String args[] )
{
methodA (0);
System.out.println(j); //4
}
}//为什么不打印8呢?也没说非得 是 ”真“才打印啊!
作者:
周靖轩
时间:
2014-9-19 11:19
b = i < 10 || methodB (8); 左边为真右边就不读了
作者:
EDDY_Liang
时间:
2014-9-19 11:28
因为 b = i < 10 || methodB (8);
这行代码里的 || 比较运算符的意思是如果前面是假的才会执行到后一部分,
而你的b 已经是true了。。所以就直接是true而不执行后面的methodB (8)
pass:就像&&符号,也是同个意思,前面如果是真的时候才会执行符号后的语句。
比较运算符的知识点没掌握好啊朋友。
作者:
杜工
时间:
2014-9-19 11:34
执行到i<10为真,后面就不会执行,短路额。。。
作者:
许愿じ☆VE杰
时间:
2014-9-19 11:50
楼上正解
作者:
hailong
时间:
2014-9-20 17:06
短路,||当左边为true时,右边不运算
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2