- public class PrintTest {
- static boolean s1; //首先这里之申明没有赋值那么初值肯定是false
- static boolean s2; //这里一样,申明没有赋值那么初值肯定是false
- public static void main(String args[]){
- int x = 1;
- if(!s1){ // 这里肯定是可以执行,这里的条件!s1肯定是真,所以能够执行往下走
- if(!s2){ // 到这里!s2也是真的,肯定也可以执行接着往下走
- s1 = true; // 到了这里,就把S1变成真的了,现在可以打印一下看看
- //System.out.println(s1); // 这里打印的结果肯定是真的。true
- }
- if(!s1){// 到这里s1已经是真的了,所以这里就不执行了
- x=x+10;
-
- }
-
- else if(s2=true){// 直接来到这里,看看这里的问题,其实主要问题也是在这里,这里相当于是把true赋值给了s2,所以S2一定是true,但是S2只是在这里是真的,到了下面就没有用了,相当于一个临时变量
-
- System.out.println(s2);// 打印的结果一定是true
- x=x+100; //所以这里就会给x加1,所以最后打印的结果也是101
- }
- else if(s1|s2){// 这里的意思是把S1 和 S2 按位或,这里的S1是真的,但是S2是假的,最后的结果也是假的,所以不执行这个里面的内容。
- System.out.println(s1);//
- System.out.println(s1);//
- x=x+1000;//
- }
- }
- System.out.println(x); //最后得出结论x=101
- }
复制代码 |