短路和一元运算符的工作

2024-02-12

请看一下下面的代码:

int i=5;
boolean b = i<5 && ++i<5;//line 2
System.out.println(i);//line 3, prints 5

在第2行,根据我的理解:因为在所有运算符中,++具有最高优先级++i应首先评估。但line 3实际上正在打印i=5(并不是6)。意思是, && 在 ++ 运算符之前求值。这怎么可能?

编辑:从答案中我看到“在Java中,所有表达式都是从左到右计算的。”。但优先顺序何时真正发挥作用。在下面的代码中:

int a=1,b=1,c=1;
boolean b = a==b&&b==c;//Line2

在第2行中,代码不仅仅从左到右运行。首先评估 a==b,然后评估 b==c,然后评估 && 运算符。您能解释一下吗?


这不是表达式的处理方式。

在爪哇,all表达式从左到右计算。运算符优先级仅在考虑评估时才起作用论点 of &&.

So i < 5之前计算过++i < 5甚至被考虑。

在这种情况下++i < 5 will not进行评估,因为i < 5 is false. So i停留在5.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

短路和一元运算符的工作 的相关文章

随机推荐

  • 从 DSS 服务器获取 json 响应时出错:“使用 JsonWriter 写入输出流时出错”,“详细信息”:“”

    我在从 dss 服务请求 json 响应时收到以下错误 Fault faultcode soapenv Server faultstring Error while writing to the output stream using Js
  • Julia:在函数内解压参数的最佳实践

    我可以解压一个元组 我正在尝试编写一个函数 或宏 它可以从类型构造函数的实例中解压其中的子集Parameters 也就是说 我知道该怎么做 a b c unpack p Parameters 但我想做这样的事情 b c unpack p P
  • Java8 IntStream 与 Collections.stream() 不兼容的返回类型

    我对此有点迷失 我有代码 我没有编写 其中有一个名为 BitSetExt 的类 它扩展了 BitSet 签名看起来像 private class BitSetExt extends BitSet implements Set
  • 警告:逗号表达式的左侧操作数无效

    我看到这个警告 如何修复它 Temp Table i temp3 MSB i 0x1 警告 逗号表达式的左侧操作数无效 什么是表对象 如果是二维数组那么你应该写 Table i temp3 在你的代码中 i temp3 是一个逗号运算符 它
  • Knockout.js 项目结构

    我一直将 Angular js 和 Knockout js 视为潜在的前端解决方案 我喜欢 Knockout 的教程和文档 但是 我不清楚 Knockout 如何处理大型应用程序的模板化 例如 在 Angular 中 您可以创建一个如下所示
  • Google Analytics gtag.js 手动将链接器跨域参数添加到 URL

    对于 Google Analytics 分析 的 gtag js 实现 希望手动将链接器参数添加到特定 URL 以便 ga 参数出现在单击的 URL 上 但文档似乎位于https developers google com analytic
  • MFMailComposeViewController 将签名附加为 .txt 文件

    我正在通过 MFMailComposeViewController 发送 pdf 在 Outlook 中查看时 发件人的签名被视为附件 但在 iOS 本机邮件应用程序中则不然 其他一切都按预期工作 签名显示附件的原因是什么 IBAction
  • 限制事件监听器每秒可以触发的次数

    我正在使用 Gamepad API 特别是使用控制器上的操纵杆的轴 这些位置的更新很多而且经常 因此 我正在监听的事件 棍子上的运动 也经常发生 有什么方法可以将其发生次数限制为每秒 25 次 以减少延迟吗 您无法限制 JavaScript
  • 如何用文本+图像动态填充Android Spinner

    这就是我想要实现的目标我能够实现这么多 我能够将文本和图像添加到微调器中 但图像没有显示在文本旁边的下拉菜单中 它仅针对微调器的选定项目显示 这是我的代码 spinner layout xml包含主微调器的布局
  • Slickgrid 复选框和过滤问题

    我有一个填充有数据的 slickGrid 并通过以下方式添加了第一个复选框列 if info includeSelectCheckbox var checkboxSelector new Slick CheckboxSelectColumn
  • Tkinter Checkbutton 和事件回调函数

    这是我在 Effbot 网站上找到的一个小代码示例 它与我想要在我的一个程序中执行的操作很接近 from Tkinter import fen Tk class test Tk class def init self self var In
  • BigDecimal 的 StringBuilder 的模拟

    我有一个 BigDecimals 列表需要求和 如果它们是要连接的字符串 我会使用 StringBuilder 来减少对象创建 BigDecimal 有类似的东西吗 或者也许我不应该为此烦恼 BigDecimal 创建的优化值得花精力吗 B
  • pgadmin4 无法在 nginx 后面的特定位置工作

    我遇到了一些麻烦 pgadmin 在位置 中的 nginx 后面工作完美 但它不会在位置 pgadmin 后面工作 工作很棒 location proxy http version 1 1 proxy set header X Real I
  • 计算小距离用什么公式

    Hy 我需要计算 2 个 GPS 点之间的距离 我读了这个问题计算地理邻近度的公式 https stackoverflow com questions 2096385 formulas to calculate geo proximity但
  • 更改 MouseOver 上的 MenuItem 的颜色

    我想在鼠标悬停时更改菜单项的颜色 我还需要圆形边框 图像和文本框 当我设置样式时 一切正常 只有 mouseOverEvent 正在执行任何操作 背景不会改变 我的代码是
  • 绕圆形路径移动一个点[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个带有二维坐标的点 我需要更改点坐标值才能遵循圆形路径 我将如何使用 C 实现它 使用正弦和余弦 for double t 0
  • 有没有办法让字典作为 python 中 pandas Dataframe 的条目?

    就像是 d a 1 b 2 data pandas DataFrame data new column d data new column 0 最后一个命令将返回字典 d 您可以将字典包装在列表中 以便将字典视为元素而不是可迭代对象 d a
  • C++ 向量元素计数

    在C 中 使用向量头 如何找到元素的数量 include
  • 是否可以修复长 html huxtable 的头部?

    这适用于使用以下命令生成的表kableExtra这在检查长桌子时很有用 我想知道是否有人知道如何做到这一点huxtable 这是一个示例 Rmd 以了解我的意思 我希望在向下滚动时将 huxtable 标题固定在页面顶部 就像在 kable
  • 短路和一元运算符的工作

    请看一下下面的代码 int i 5 boolean b i lt 5 i lt 5 line 2 System out println i line 3 prints 5 在第2行 根据我的理解 因为在所有运算符中 具有最高优先级 i应首先