楼上的说什么那,这题明显考的是 | ||两个的却别
简单说一个的时候 两边都执行
两个的时候 如果左面面满足条件了 右面面就不执行了(还是白话听的明白)
|| 或的操作 true||xxx 因为左面是true了 所以不管右边是什么该表达式的结果一定是ture 所以当用两个的时候右边就不执行了
同样 false&&xxx 该表达式 不过右边结果是什么 因为左边是false 所以在与的情况下右边就不执行了。
所以相应的一个的情况下 两边都执行
E
1. public class test ( //类名用大括号
2. private static int j = 0;
3.
4. private static boolean methodB(int k) ( //方法名大括号
5. j += k;
6. return true; //定义方法没让返回,这列却有返回值
6. )
7.
8. public static void methodA(int i) {
9. boolean b: //定义变量用分号,而且局部变量要初始化
10. b = i < 10 | methodB (4);
11. b = i < 10 || methodB (8);
12. }
13.
14. public static void main (String args[] ) ( //方法名大括号
15. methodA (0);
16. system.out.printIn(j);
17. )
18. )
D
10. b = i < 10 | methodB (4); //之后j==4;
11. b = i < 10 || methodB (8); //j==j+8,即j==12
可是我测试后发现,j打印出来的结果是4。
等待高手。。。。
后来想想了,终于知道原因了。
10. b = i < 10 | methodB (4); //之后j==4;
11. b = i < 10 || methodB (8); //但是在这里后java采用的判断原则是从左到右,因为0<10返回的是true,而后面的判断符||(或),所以b = i < 10 || methodB (8);的结果为b=true;java就没有执行判断符||(或)后面的methodB (8),这样最终j的值就为4。
这里关键是运算符|,||和java的运算规则。