class Test{ 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(4); b = i < 10 || methodB(8); } public static void main(String[] args) { methodA(0); System.out.println(j); } } A.0 B. 4 C. 8 D. 12 E. 不能编译通过
理解问题class Test{ 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(4); b = i < 10 || methodB(8); } public static void main(String[] args) { methodA(0); System.out.println(j); } } A.0 B. 4 C. 8 D. 12 E. 不能编译通过
已完成理解「class Test{ 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(4); b = i < 10 || methodB(8); } public static void main(String[] args) { methodA(0); System.out.println(j); } } A.0 B. 4 C. 8 D. 12 E. 不能编译通过」
展开阅读网页
代码分析
- 静态变量j:初始值为0,由方法
methodB
修改。 - 方法methodB:接收一个整数参数,增加到静态变量
j
上,并返回true
。 - 方法methodA:接收一个整数参数,使用位运算符
|
和逻辑运算符||
,但存在逻辑错误。 - main方法:调用
methodA
并打印j
的值。
代码问题
- 方法methodB:应返回
boolean
类型,但使用了Boolean
类型,这在Java中是两个不同的类型。 - 方法methodA:逻辑运算符
||
的使用是正确的,但位运算符|
的使用是错误的,因为methodB
返回的是boolean
类型,不能与整数进行位运算。
代码修正
class Test{
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(4);
b = i < 10 || methodB(8); // 这里应该使用逻辑运算符,而不是赋值
}
public static void main(String[] args) {
methodA(0);
System.out.println(j);
}
}