黑马程序员技术交流社区

标题: 来几题基础题,容易出错又经常遇到的面试题 [打印本页]

作者: ytblght55    时间: 2013-6-22 23:45
标题: 来几题基础题,容易出错又经常遇到的面试题
本帖最后由 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:看了解答还搞不懂的,自己找个安静没人的地方面壁思过去......


作者: 许庭洲    时间: 2013-6-25 20:54
值得学习ing!
作者: 秦兰之    时间: 2013-6-29 14:36
学到了,非常感谢,又非常沮丧,我基础还是不行。
作者: Just_Only    时间: 2013-6-30 23:42
不错,支持了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2