为啥if的条件成立了,x++大于4不应该是先用4与4比较吗?没想明白
3条回答 默认 最新
- Finalez 2023-10-17 05:33关注
这道题如果没有D选项那就是出错了,答案确定是x=5, y=5。
这个主要是涉及后缀自增和java逻辑短路问题。
前后缀自增知识点:x++(后缀自增):
首先,返回x的当前值。
然后,增加x的值。
++x(前缀自增):
首先,增加x的值。
然后,返回新的x值。java短路操作知识点:
对于 && (逻辑与):如果左边的表达式为 false,那么整个表达式的结果为 false,不再计算右边的表达式。
对于 || (逻辑或):如果左边的表达式为 true,那么整个表达式的结果为 true,不再计算右边的表达式。所以这道题1. x++ > 4:先使用x的当前值4进行比较,结果是false。然后,x的值增加1,变为5。
2. 由于 x++ > 4 的结果为 false,&& 这个逻辑“与”根据操作的短路特性会使得后面的表达式 ++y > 5 不被评估。因此,y的值不会增加。
3.所以 if 条件不成立。
整个if语句的条件 x++ > 4 && ++y > 5 的结果是 false。所以,if语句内部的代码块(x++)不会被执行。除非题目是++x > 4,那结果选A,x=6,y=6。
综上所述,题出错了解决 2无用
悬赏问题
- ¥15 uniapp的h5项目写一个抽奖动画
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
- ¥15 NRF24L01能发送但是不能接收