这个表达有什么问题?它是否从左到右计算,这意味着错误是先将字符串添加到双精度



如果 d1 和 d2 是具有有效值的双精度值,那么下面的表达式有什么问题?

"answer = " + d1 < d2
Java 运算符

页面显示,"加法"(+( 运算符在"关系"(<( 运算符之前计算

因此,语句String + double < double将如下所示:

String + double < double   ==   (String + double) < double --> String < double

结果将是String < double,该操作在 java 中不受支持。所以它不会编译。

检查运算符优先级数组以查找确切的顺序。

运算符越靠近表的顶部,其优先级越高

具有较高优先级的运算符先于优先级相对较低的运算符进行评估

当优先级相等的运算符出现在同一个表达式中时,必须有一个规则来控制哪个先计算:

  • 除赋值运算符外的所有二元运算符都从左到右计算;
  • 赋值运算符从右到左计算。

相关内容

最新更新