用逗号运算符做 {} 而 ( , ) ,这甚至有可能



昨天我读到了Java中用于for循环的逗号运算符。这符合我的预期。我想到了这种结构,但它没有按预期工作。

';' expected
        } while((userInput < 1 || userInput > 3), wrongInput = true);
';' expected
        } while((userInput < 1 || userInput > 3), wrongInput = true);

我的想法是,在一次迭代后,如果userInput不在 1 到 3 之间,它应该将布尔wrongInput设置为 true,以便在下一次迭代期间显示错误消息。表示userInput无效。

private int askUserToSelectDifficulty() {
    int userInput;
    Boolean wrongInput = false;
    do{
        if(wrongInput) println("nt Wrong input: possible selection 1, 2 or 3");
        userInput = readInt();
    } while((userInput < 1 || userInput > 3), wrongInput = true);
    return userInput;
}

我想这可能是因为这在相当于 for 循环的条件部分内部,所以这是无效的语法。因为你不能在条件部分使用逗号运算符?

我看到逗号运算符在 for 循环中使用的示例:在 Java 中的 for 循环中给出多个条件Java - 用于循环声明的逗号运算符

最好稍微

展开一下。

userInput = readInt();
while (userInput < 1 || userInput > 3) {
    System.out.println("ntWrong input: possible selection 1, 2 or 3");
    userInput = readInt();
}

这避免了对标志的需求。

Java 中没有逗号运算符(反正不是 C/C++ 意义上的逗号运算符)。在某些上下文中,您可以使用逗号一次声明和初始化多个内容,但这并不能推广到其他上下文,例如示例中的上下文。

表达循环的一种方式是这样的:

while (true) {
    userInput = readInt();
    if (userInput >= 1 && userInput <= 3) {
        break;
    }
    println("nt Wrong input: possible selection 1, 2 or 3");
};

相关内容

  • 没有找到相关文章

最新更新