第一題
if(x++==2 & ++y==2){ x=7;}System.out.PRintln("x="+x+",y="+y);
解析:不管是x++,還是++x,x的值肯定是變成了+之后的值,題目中,x++與2比較,是拿x預存的值與2比較,因此是1與2比較,就是假;
單&是左右兩邊都要執行的,++y==2是真,因此不執行x=7,最后結果是
-------------------x=2,y=2
第二題
int x=1,y=1;if(x++==2 && ++y==2){ x=7;}System.out.println("x="+x+",y="+y);
解析:由上題可知,&&左邊是假,短路與,右邊不執行,因此最終答案是
-------------------x=2,y=1
第三題
int x=1,y=1;if(x++==1 | ++y==1){ x=7;}System.out.println("x="+x+",y="+y);
解析:左邊假,或,右邊真,執行x=7,最終答案是
-------------------x=7,y=2
第四題
int x=1,y=1;if(x++==1 || ++y==1){ x=7;}System.out.println("x="+x+",y="+y);
解析:左邊真,右邊不執行,執行x=7,因此最終答案是
-------------------x=7,y=1
第五題
boolean b = true;
if(b==false) //如果寫成if(b=false)有結果嗎?如果有,結果是?----是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");
答案是b
第六題
int x = 2,y = 3;
switch(x)
{
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);
答案是y=6
新聞熱點
疑難解答