如何将If语句转换为三元运算符表达式

时间:2019-05-27 15:38:38

标签: if-statement type-conversion ternary

我正在使用Java版本“ 1.8.0_171”。我正在尝试将此简单的If语句转换为三元表达式/运算符:

private String player;   // a class variable
.     .    .     .     .     .    .    .     .     .
public String switchPlayer(String player) {
    if(this.player == "X")
        this.player = "O";
    else
        this.player = "X";
    return player;
}  

我试图用以下三元语句替换该方法中的If语句:

player ==“ X”? “ O”:“ X”;

Java在此语句中用以下错误标记==“ X”:

Multiple markers at this line
- Type mismatch: cannot convert from String to 
 boolean
- Syntax error on token "==", invalid 
 AssignmentOperator  

这是Eclipse建议的快速修复方法

String dummy = player == "X" ? "O" : "X";  

这似乎有些奇怪,但是Java中的三元运算符具有左侧变量分配要求。我现在收到的唯一错误是一个简单的警告,提示我不在代码中的其他任何地方使用变量dummy。

我将仅使用简单的If语句,因为此处的重构值意义不大。我认为无论如何我都会发布此消息,以查看社区是否有任何反馈。

1 个答案:

答案 0 :(得分:1)

如果您尝试过,我认为它会起作用:

this.player = this.player == "X"? "O" : "X";