当使用无括号时,为什么Jshell将r,s视为字符串?
PS C:\Users\saiko\OneDrive\Learning\java> Jshell
| Welcome to JShell -- Version 11.0.6
| For an introduction type: /help intro
jshell> int p = 10; int q =20; int r=5; int s=10;
p ==> 10
q ==> 20
r ==> 5
s ==> 10
jshell> if( (p+q) > (r+s) ) System.out.println( p+q+" is greater than "+r+s );
30 is greater than 510
jshell> if( (p+q) > (r+s) ) System.out.println( (p+q) +" is greater than "+ (r+s) );
30 is greater than 15
jshell>发布于 2020-12-10 00:35:32
正如评论和Java tutorials中所说的那样
从左到右计算除赋值运算符以外的所有二元运算符
在表达式p+q+" is greater than "+r+s中,第一个求值是p+q results In int,然后是p+q+" is greater than " results in String,所有后续求值结果也是String。
这就是为什么你会获得:
30 is greater than 510https://stackoverflow.com/questions/61719762
复制相似问题