第一题
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