本帖最后由 ytblght55 于 2013-6-23 00:01 编辑
int x =1,y=1;
if(x++==2 & ++y==2)
{
x=7;
}
System.out.println("x="+x+" , y="+y);
先运算x==2,不等于x++一次,x=2.然后运行++y一次y=2
输出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不成立,x++一次x=2.因为是&&所有++y==2不运行,y=1
输出x=2,y=1
--------------------------------------------------------------------------------
int x =1,y=1;
if(x++==2 | ++y==2)
{
x=7;
}
System.out.println("x="+x+" , y="+y);
或只要等式一边为true,if判断才会成正确
输出x=7,y=2
--------------------------------------------------------------------------------
int x =1,y=1;
if(x++==2 || ++y==2)
{
x=7;
}
System.out.println("x="+x+" , y="+y);
先运行x==2不等于x++一次,第一个条件为flase,运行等式后面++y==2,y=2
输出x=7,y=2
--------------------------------------------------------------------------------
boolean b=true;
if(b==false)//如果改成b=false 有结果吗?结果是什么?
{
System.out.println("a");
}
else if(b)
{
System.out.println("b");
}
else if(!b)
{
System.out.println("c");
}
else
System.out.println("d");
如果b==false,那么运行结果是b
如果b=false,那么运行结果是c,以为在第一个if语句里b被赋值false,只有!b是ture所以输出c
--------------------------------------------------------------------------------
int x=2,,y=3;
switch(x)
{
default:
y++;
case 3:
y++;
case 4:
y++;
}
Sysetem.out.println("y="+y);
y=6,先执行defauley++,没有遇到break语句,一直执行
PS:看了解答还搞不懂的,自己找个安静没人的地方面壁思过去......
|