我有一段代码使用条件运算符将变量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";

10-01 17:44