您的位置:首页 > 其它

关于i++和++i以及&&的逻辑

2017-06-27 11:33 281 查看
题目来源:https://zhuanlan.zhihu.com/p/27431652?utm_source=com.tencent.tim&utm_medium=social

题目1:

class Happy {
public static void main(String args[])     {
int i = 1 ;
int j = i++ ;
if((i==(++j))&&((i++)==j))     {
i += j ;
}
System.out.println("i = "+i);
}
}


计算流程:

1. 第3行结束:i=1;

2. 第4行结束:i=2;j=1;//i先赋复制给j,后执行i=i+1;

3. 第5行结束:i=3;j=2;//j先加1,然后判断i==j,为true。接着判断(i++) ==j,先判断i==j,后i加1。整个结果为true。

4. 第6行结束:i=5;j=3;//没什么好说的。

5. 最后结果:输出5.

题目2:

public static void main(String args[]) {
boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
System.out.println(flag ? "aliyunedu" : "yootk") ;
}


这道题巨坑,如果不了解&&的规则,会很郁闷。

10%2==1,为false,所以后续两个不用判断,flag为false。

结果出来了,输出:yootk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  基本算法
相关文章推荐