做 而循环麻烦



我的do-while语句有问题。我创建了一个 do-while 循环以确保唯一接受的输入是"e"或"o"(不区分大小写(,但是,即使我插入了所需的输入,它也会继续循环。任何帮助不胜感激!

当前代码和结果

这句话:
while(!side.equalsIgnoreCase("O") || !side.equalsIgnoreCase("E"));
总是正确的

如果您输入Ee,则此!side.equalsIgnoreCase("E")为假,但此!side.equalsIgnoreCase("O")为真

如果您输入Oo,则此!side.equalsIgnoreCase("O")为假,但此!side.equalsIgnoreCase("E")为真

由于您使用的是||,因此true || false为您提供true因此循环永远不会结束

对于所有其他输入,两者都为真(true || true(,这也是真的

您需要将其替换为:
while(!side.equalsIgnoreCase("O") && !side.equalsIgnoreCase("E"));

最新更新