a=b是赋值语句也就是while(false)

解决方案 »

  1.   

    第一个循环相当于
    while(false){
      ....
    }
    当然没问题了。第二个循环相当于 
    while(2){
      ....
    }
    这显然是不对的
      

  2.   

    是向楼上两位所说的一样。如果你把第二个换成while(y=x)也会编译通过
      

  3.   

    第一个执行过程是这样的:
    boolean a=true;
    boolean b=false;
    然后a=b,最后a=false,
    这样检测的时候看的就是a的值,也就是false第二个是赋值语句
      

  4.   

    “=”是赋值符号,“==”逻辑运算符。
    两个数的比较要用“==”。但每个表达式都有一个值,赋值表达式也有。
    用boolean值a=b时,表达式的值为boolean型,是while()表达式中要求的类型。
    用其它类型值的时候表达式也就不是boolean型,所以不符合while()表达式的要求。所以编译通不过。
      

  5.   

    是向楼上两位所说的一样。如果你把第二个换成while(y=x)也会编译通过
      
     RE:
     会通过???
    这是不可能得!!!!!!!