System.out.println(100% - 40);
请解释编译器解决此问题的步骤。
就像我了解的%是一个操作员,它需要两个操作数才能工作,但是在这种情况下,它如何接受另一个操作员,例如" - "?
正确阅读的格式很重要。
System.out.println(100 % -40);
或
System.out.println(100 % (-40));
然后,很明显有两个操作员:其余操作员%
和Unary减去操作员-
。
此外,操作员优先表解释了为什么即使没有圆形括号,这种非常不寻常的表达也会起作用。
┌────────────────┬───────────────────────────────┐
│ Operators │ Precedence ↓ │
├────────────────┼───────────────────────────────┤
│ unary │ ++expr --expr +expr -expr ~ ! │
│ multiplicative │ * / % │
└────────────────┴───────────────────────────────┘
这不应按书面方式读取。
%这里不代表百分比。相反,它表示模量。
因此,答案是100 mod(减去40(,即100%(-40(
我希望这对您有帮助