A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

int i = 100;
while(true)
{
     If ( i++ > 100 )
          break;
     System.out.println(i);
}
这个程序执行到if(i ++ > 100)时,100不大于100,不执行break,这我知道,直接执行System.out.println(i);问题来了,输出的i的值到底为什么是101.
if(i ++ > 100)这句话意思不是:如果i++在加前大于100的话,就执行下面的语句。既然是如果,那为什么会包含计算i++加后的值。
同样,下面的程序也是这个问题。
int x =1,y=1;
if(x++==2 & ++y==2)
{
     x=7;
}
System.out.println("x="+x+"  ,  y="+y);
A.  x=1  y=2
B.  x=7  y=1
C.  x=7  y=2  
D.  x=2  y=2

boolean b=true;
if(b=false)                                  这里if(b = false)  不是如果b = false吗?既然是如果,那为什么运行结果最后是c呢?
{
        System.out.println("a");
}
else if(b)
{
        System.out.println(b);       
}
else if(!b)
{
        System.out.println("c");
}
else
        System.out.println("d");
A.        a   
B.        true  
C.        c
D.        d

同样
Class Demo
{
public static void main(String [] args)
{
        int a=10;
        if(a++>10)
{
        a=20;
}
        System.out.println(a);
}
}
A.  11
B.  12
C.  20
D.  21  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马