求解释一段java小程序,给我结果,谢谢
publicclasstestb{privatestaticintj=0;privatestaticbooleanmethodB(intk){j+=k;System.ou...
public class testb {
private static int j = 0;
private static boolean methodB(int k){
j += k;
System.out.println(j);
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);
}
} 展开
private static int j = 0;
private static boolean methodB(int k){
j += k;
System.out.println(j);
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);
}
} 展开
2个回答
展开全部
执行 b = i < 10 || methodB (4);
因为主方法中传入的参数是0,所以0<10成立,b=true,因为||前面已经为true,所以发生短路,也就是程序就不会执行||后面的代码,于是,执行
b = i < 10 | methodB (8);
|不会发生短路,不论前面是否成立,都会执行|后面的代码,于是执行:
methodB (8);
j += k;//所以j=j+8=8
System.out.println(j);//这里输出输出8
执行完成后返回主方法
System.out.println(j);
//j是全局变量,还是会输出8
因为主方法中传入的参数是0,所以0<10成立,b=true,因为||前面已经为true,所以发生短路,也就是程序就不会执行||后面的代码,于是,执行
b = i < 10 | methodB (8);
|不会发生短路,不论前面是否成立,都会执行|后面的代码,于是执行:
methodB (8);
j += k;//所以j=j+8=8
System.out.println(j);//这里输出输出8
执行完成后返回主方法
System.out.println(j);
//j是全局变量,还是会输出8
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询