按老师将的||出现,那么右边的表达式就不参与运算||
int i=9,j=8,k=6,m=10;
if((i>j)||m<k++){
k--;}
else {
k++;}
为什么这里面的k参与了2次运行呢
11
收起
正在回答 回答被采纳积分+1
4回答
Tender10
2017-11-20 09:50:49
1、第一次你贴出的代码就是执行一次,因为短路或运算,只要前面的条件成立了就不会在执行后面的语句。
2、第二次你贴出的代码运行结果为什么等于8呢,那是因为你加了一个!非运算,首先i>j即9>8是正确的,而加上一个非运算后,是不是意味着!(i>j)就是不正确的,而非运算的条件是必须要有一个成立才是正确的,第一个条件不正确,那当然还要继续执行后面的m<k++判断啦。
3、短路运算符是先判断第一个条件,如果第一个条件为真,那么就不需要判断后面的条件了。或运算是必须要一个为真才可以,你第一个不成立,那肯定要在判断第二个条件啊,不是说使用短路或运算就一定只执行一次。
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星