黑马程序员技术交流社区

标题: 这几题不太懂,求高手指点 [打印本页]

作者: shijinlong    时间: 2015-9-16 21:55
标题: 这几题不太懂,求高手指点
第一题
int x = 1,y = 1;

if(x++==2 & ++y==2)
{
        x =7;
}
System.out.println("x="+x+",y="+y);  

---------------------------------------------------
第二题
int x = 1,y = 1;

if(x++==2 && ++y==2)
{
        x =7;
}
System.out.println("x="+x+",y="+y);

---------------------------------------------------
第三题
int x = 1,y = 1;

if(x++==1 | ++y==1)
{
        x =7;
}
System.out.println("x="+x+",y="+y);

---------------------------------------------------
第四题
int x = 1,y = 1;

if(x++==1 || ++y==1)
{
        x =7;
}
System.out.println("x="+x+",y="+y);

---------------------------------------------------
第五题
boolean b = true;

if(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");
作者: 任振铭    时间: 2015-9-16 22:06
第一题 x=2,y=2
作者: 任振铭    时间: 2015-9-16 22:08
第二题 x=2 y=1  第三题  x=7,y=2  第四题 x=7  y=1   第五题 输出"b"
作者: iceknc    时间: 2015-9-16 22:10
关于x++跟++x,我是这么理解的,x在前面,先用后加,即先去参与其他运算,再做+1的运算,同理x放在++的后面。
作者: 任振铭    时间: 2015-9-16 22:10
第二题 x=2 y=1  第三题  x=7,y=2  第四题 x=7  y=1   第五题 输出"b"
作者: 史世锋    时间: 2015-9-16 22:28
单个的“&”“|”逻辑运算符号就不用说了,不论左边结果是true还是false,右边都会执行
“&&”“||”都具有短路功能,“&&”左边结果为false,右边就不再执行,因为右边无论是true还是false,整个表达式的结果都是false。“||”左边结果为true,右边就不再执行,因为右边无论是true还是false,整个表达式的结果都是true
作者: StormPeng    时间: 2015-9-16 22:29
其实就是&&   &的问题,我是这样记的,一个&左右两边都要测试,&&从左往右走。




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