这样的事情有可能吗?
if(a == b == c)
或是
if((a== b) && (b == c))
是唯一的方法吗?
或者最酷的方式是什么?
答案 0 :(得分:7)
在某些语言中,可以使用该简写。例如,在Python中a == b == c
大致相当于表达式a == b and b == c
,除了b只被评估一次。
然而,在Java和Javascript中,你不能使用短版本 - 你必须像第二个例子那样编写它。第一个例子大致相当于以下内容:
boolean temp = (a == b);
if (temp == c) {
// ...
}
这不是你想要的。在Java a == b == c
中甚至不会编译,除非c
是布尔值。
答案 1 :(得分:1)
在java中 - 我们没有==快捷键操作符。所以我们最终会做出个人平等。
但是如果你认为你需要很多功能变化的参数,我会考虑实现这样的函数。以下是未处理特殊情况的示例代码。
public static boolean areTheyEqual(int... a) {
int VALUE = a[0];
for(int i: a) {
if(i!= VALUE)
return false;
}
return true;
}
答案 2 :(得分:0)
在JavaScript中,您最安全的赌注是a === b && b === c
。为了自己的理智,我总是避免使用==
支持===
。 Here's a more detailed explanation.
答案 3 :(得分:0)
在Scala中,您可以为此使用元组:
(a, b) == (c, c)
这将检查a == c
和b == c
,即与a == b == c
相同
答案 4 :(得分:-3)
要获得三个数字中的最大值,请使用一行方法:
int max =(a> b&& a> c)? a:((b> a&& b> c)?b:c);