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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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:看了解答还搞不懂的,自己找个安静没人的地方面壁思过去......

评分

参与人数 2技术分 +2 收起 理由
曹睿翔 + 1 神马都是浮云
张勇1993 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
学到了,非常感谢,又非常沮丧,我基础还是不行。
回复 使用道具 举报
不错,支持了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马