【问题标题】:In Java, the expression "+ + + + + +" is executed, the compiler reports no errors and can execute correctly? [duplicate]在Java中,表达式“++++++”执行后,编译器没有报错,可以正确执行?[重复]
【发布时间】:2019-12-31 09:25:36
【问题描述】:

我在 eclipse 中写了这段代码,它写了,结果是3d

public static void main(String[] args) {
    double a = 5d + + + + + +-+3d;
    System.out.println(a);
}

【问题讨论】:

  • "结果是 3d。" - 不。结果是2d
  • + + + + + + 不是表达式。它是一系列运算符。一元运算符。

标签: java


【解决方案1】:

你的表达式可以改写为

(5d) + (+ + + + +-+3d)

第一个+ 是应用于两个操作数的加法运算符。

+ + + + +-+3d 中的所有+- 都是一元运算符,它们加起来等于数字3d 的符号。

最后,你的算术表达式是

5d + (-3d)

返回2d。您可以将多个一元运算符应用于一个表达式,如下例所示:

+ - - 2 // 2
- + + 2 // -2

【讨论】:

    【解决方案2】:

    该代码的输出是2.0,这是因为除了第一个+ 之外,所有的都是一元加/减运算符

    +3d3d 相同
    -+3d 则与-3d 相同
    +-+3d 则与-3d 相同
    ...
    + + + + +-+3d 则与 -3d 相同
    5d + + + + + +-+3d 则与 5d + -3d 相同
    5d - 3d相同
    所以结果是2d
    打印为2.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      相关资源
      最近更新 更多