【问题标题】:How to convert an If Statement to a Ternary Operator expression如何将 If 语句转换为三元运算符表达式
【发布时间】:2019-10-13 04:52:18
【问题描述】:

我正在使用 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 语句:

玩家 == "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 语句,因为这里的重构值意义不大。我想我还是会发布这个,看看社区是否有任何反馈。

【问题讨论】:

    标签: if-statement type-conversion ternary


    【解决方案1】:

    如果你尝试一下,我认为它会起作用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 2021-07-09
      • 1970-01-01
      • 2012-02-12
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      相关资源
      最近更新 更多