为什么';Java允许在这里使用三元运算符吗?

为什么';Java允许在这里使用三元运算符吗?,java,if-statement,syntax-error,conditional-operator,Java,If Statement,Syntax Error,Conditional Operator,代替键入: if (Math.random() < .5) { System.out.println("toto"); } else { System.out.println("tata"); } if(Math.random()

代替键入:

if (Math.random() < .5) {
    System.out.println("toto");
} else {
    System.out.println("tata");
}
if(Math.random()<.5){
系统输出打印项次(“toto”);
}否则{
System.out.println(“塔塔”);
}
我会发现键入以下内容是有用的,也是合乎逻辑的:

Math.random() < .5 ? System.out.println("toto") : System.out.println("tata");
Math.random()<.5?System.out.println(“toto”):System.out.println(“tata”);

但是,我得到的是错误
而不是一条语句
。我不明白这是怎么一个问题。

因为三元运算符为变量赋值。将其更改为:

String toPrint = Math.random() < .5 ? "toto" : "tata";
System.out.println(toPrint);
String toPrint=Math.random()<.5?“托托”:“塔塔”;
系统输出打印项次(toPrint);

条件运算符用于计算表达式,而不是执行语句
System.out.println(“todo”)
不是一个表达式:它没有任何值。
如果
语句用于执行语句,请使用它。您可以这样做:
String answer=Math.random()<.5?“托托”:“塔塔”;System.out.println(应答)或在一行中:
System.out.println(Math.random()<.5?“toto”:“tata”)