理解方法的return语句语法

时间:2015-02-13 15:02:00

标签: java ternary-operator tic-tac-toe

Java中有一个Tic Tac Toe游戏,我试图理解方法的语法,但我不知道return语句正在做什么。这是方法,它位于TicTacToePanel类中:

private String getStartPlayer() {
    String[] players = {"X","O"};
    int value = -1;
    while (value == -1) {
        value = JOptionPane.showOptionDialog(null,
            "Select player to start the game:", "Start Player",
            JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null,
            players, "X");
        System.out.println(value);
    }
    return (value == 0 ? "X" : "O");
}

我特别不理解的是return。我知道这是陈述某些内容的另一种方式,但我不熟悉?: 如果游戏中有更多的玩家,比如Y和Z,你会如何使用这个返回语句超过2个选项?

7 个答案:

答案 0 :(得分:3)

return (value == 0 ? "X" : "O");

相同
if(value == 0)
    return "X";
else
    return "O";

答案 1 :(得分:1)

这是一个条件运算符(Java唯一的三元运算符 - 感谢@Pshemo),由?运算符表示。

我将其视为如果然后否则;

return (value == 0 ? "X" : "O");

因此,如果value等于0,return "X",则为return "O"

Oracle's documentation将其描述为:

  

条件运算符

     

?:三元(简称            if-then-else 声明)

这可以用于任何作业,而不仅仅是返回语句:

String noughtOrCross = (value == 0 ? "X" : "O");
return noughtOrCross;

答案 2 :(得分:1)

这是一个三元运营商。更多信息:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

if (value == 0) {
    return "X";
} else {
    return "O";
}

答案 3 :(得分:0)

它是三元运营商。参见:

Wikipedia: ternary operator

答案 4 :(得分:0)

如果值等于0," X"将被退回,否则将是" 0"。 有关三元运算符的更多信息,请参见此处:

http://alvinalexander.com/java/edu/pj/pj010018

在这里

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

回答第二个问题:"如果游戏中有更多玩家,比如Y和Z,你将如何使用这个返回语句超过2个选项":

此方法将始终返回" X"或者" 0",在这种情况下,玩家数量(或方法调用)对返回没有影响(返回类型:字符串,可能返回的值:" X"或者" 0"由于return语句中的条件),如果之前没有抛出任何异常,那么。

答案 5 :(得分:0)

它是Java中的shorthand运算符之一,链接中的#13。它基本上是一个缩短的if语句。 :)

答案 6 :(得分:0)

这是一个三元的陈述。这是一个解释{{3p>