【问题标题】:Incomprehension in Java concatenation syntax [duplicate]Java连接语法的不理解[重复]
【发布时间】:2015-09-11 18:30:28
【问题描述】:

为什么这段代码在 Java 中可以正常工作?我已经在 Eclipse 和 Itellij IDEA 中尝试过。结果是 8。

int a = 3, b = 5; System.out.println(a + + b);

【问题讨论】:

  • 提示(假设ab是数字类型):System.out.println(+1); System.out.println(-1);
  • 另一件事:99% 的时间 IDE 与问题无关。有些错误是 Eclipse 编译器特有的(或非 Eclipse 编译器特有的),但这种情况非常罕见

标签: java syntax concatenation


【解决方案1】:

在 java 中,+ 根据它所作用的变量的类型扮演着许多角色。对于数值变量,+ 是二元运算符,也是一元运算符。 所以在你的陈述中

System.out.println(a + + b);

编译器将+b 视为带有一元运算符+ 的表达式(它什么都不做),然后使用另一个+a 添加到该表达式,现在将其视为二元运算符。为了更好地理解这一点,您应该阅读运算符的优先级。

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 2018-03-30
    • 2014-10-26
    • 2021-07-26
    • 1970-01-01
    • 2017-03-27
    • 2017-11-23
    • 2017-11-15
    • 2013-07-29
    相关资源
    最近更新 更多