db_csl_2047 2023-10-17 04:18 采纳率: 0%
浏览 8

为啥x++大于4,x++不是先用4吗

img


为啥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。
    综上所述,题出错了

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月17日

悬赏问题

  • ¥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能发送但是不能接收