我有一段代码使用条件运算符将变量x的值与5进行比较:
(x >=5 ? x : -x)
与常规if语句相比,使用条件运算符有什么好处?
最佳答案
请注意,?:
是一个表达式-它返回必须使用的值
z = (x >=5 ? x : -x)
Java中的
if
构造不是一个表达式(存在多种语言),并且不返回任何值,因此从这种意义上讲,它们不是等效的。当
if
选项执行分配时,它们是等效的一个示例:if("Cheese".equals(x)) {
type = "Dairy";
} else {
type = "Maybe not dairy";
}
这和
type = "Cheese".equals(x) ? "Dairy" : "Maybe not dairy";
您可以将
?:
嵌套到任意深度,但实际上不应该-很难阅读: List<String> cheeses = Arrays.asList("Gouda", "Edam");
String x= "Gouda";
String type = cheeses.contains(x) ? "Gouda".equals(x) ? "Yummy Gouda" : "Cheese - but not Gouda" : "Maybe not dairy";