public class Untitled1 {
private static int j = 0;
private static boolean methodB(int k)
{
j=+k;
return true;
}
private static void methodA(int i)
{
boolean b;
b = i<10||methodB(8);
b = i<10|methodB(4);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
methodA(0);
System.out.println(j);
}
}
看看打印出来是几!
----------------解决方案--------------------------------------------------------
对于楼主的这道题目我实在是不知道想要表达什么意思
不过仔细看了之后 是不是想考考我们对逻辑运算符与位运算符使用的区别啊?
只能看到这个问题:
b = i<10||methodB(8);//这个用的是逻辑运算符,会导致“短路”;
b = i<10|methodB(4);//这个用的是位运算符,不会导致“短路”;
因为
methodA(0)传入的i在(i<10)中是false所以对于||运算来说是短路的,所以后面的methodB(8)并不会执行
而在下一句中因为是|运算 ,并不会短路,所以接着的methodB(4)会执行
所以输出结果是:4
开始看了半天没注意到||和|
估计楼主是来考我们眼力的吧
----------------解决方案--------------------------------------------------------
这题好象是考SCJP的题!~~
在TK中很多!~
楼上的说得很正确!~
----------------解决方案--------------------------------------------------------
晕这么多天了这贴还没有沉下去!
----------------解决方案--------------------------------------------------------