【发布时间】:2016-02-17 12:56:03
【问题描述】:
所以我在查看一些 A-Levels 计算机科学过去的论文时,偶然发现了这个:
现在,我的第一反应是第 6 行不需要括号。原因是代数运算符优先于比较优先于布尔运算符。
作为 Java 的一个小例子:
int a = 100;
int b = 100;
int c = 100;
int d = 100;
if( ((c+d) > 180) && ((a+b+c+d)) >= 320)
System.out.println("greater");
if(c+d > 180 && a+b+c+d >=320)
System.out.println("greateragain");
两个 if 语句都被评估为真。
那么,在这种情况下,我认为括号仅用于人类可读性是正确的还是...?
【问题讨论】:
-
嗯,这取决于第一个 sn-p 中语言的语义(绝对不是 Java...)
-
如果相关语言的比较运算符的优先级高于加法运算符,则需要括号,因此它不会计算为
c + (d >= 180)。但就像有人说的那样,这并不是 java 很难知道的...... -
运算符优先级取决于语言语法。如有疑问,请加上括号。这就是他们来这里的原因。
-
同意这完全取决于语言,但我建议以特定方式编写任何代码以使其更具可读性是一个非常重要的考虑因素。尤其是对于不熟悉该语言的人,他们仍然可以阅读该代码并确切地知道它在做什么。
-
在我看来像BASIC - 添加标签希望有人能认出方言。
标签: basic