If statement 如何将If语句转换为三元运算符表达式
我正在使用Java版本“1.8.0_171”。我试图将这个简单的If语句转换为三元表达式/运算符:If statement 如何将If语句转换为三元运算符表达式,if-statement,type-conversion,ternary,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";
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语句:
玩家==“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语句,因为这里的重构值意义不大。我想无论如何我都会发布这篇文章,看看社区是否有任何反馈。我想如果你尝试以下方法,它会起作用:
this.player = this.player == "X"? "O" : "X";