100% - 40 在 Java 中如何工作?
How does 100% - 40 wοrk in Java?
System.out.println(100% - 40);
请解释编译器解决此问题的步骤。
据我所知,% 是一个需要两个操作数才能工作的运算符,但在这种情况下它如何接受另一个运算符,如“-”减号?
此处的格式对于正确阅读很重要。
System.out.println(100 % -40);
或
System.out.println(100 % (-40));
然后,很明显有两个运算符:余数运算符%
和一元减运算符-
。
此外,the operator precedence table 解释了为什么这个非常不寻常的表达式即使没有圆括号也能正常工作。
┌────────────────┬───────────────────────────────┐
│ Operators │ Precedence ↓ │
├────────────────┼───────────────────────────────┤
│ unary │ ++expr --expr +expr -expr ~ ! │
│ multiplicative │ * / % │
└────────────────┴───────────────────────────────┘
不应该这样阅读。
%这里不代表百分比。相反,它代表 modulus.
因此答案是 100 mod(负 40)即 100%(-40)
希望对您有所帮助
System.out.println(100% - 40);
请解释编译器解决此问题的步骤。
据我所知,% 是一个需要两个操作数才能工作的运算符,但在这种情况下它如何接受另一个运算符,如“-”减号?
此处的格式对于正确阅读很重要。
System.out.println(100 % -40);
或
System.out.println(100 % (-40));
然后,很明显有两个运算符:余数运算符%
和一元减运算符-
。
此外,the operator precedence table 解释了为什么这个非常不寻常的表达式即使没有圆括号也能正常工作。
┌────────────────┬───────────────────────────────┐
│ Operators │ Precedence ↓ │
├────────────────┼───────────────────────────────┤
│ unary │ ++expr --expr +expr -expr ~ ! │
│ multiplicative │ * / % │
└────────────────┴───────────────────────────────┘
不应该这样阅读。
%这里不代表百分比。相反,它代表 modulus.
因此答案是 100 mod(负 40)即 100%(-40)
希望对您有所帮助