java循环卡在第一个输出

时间:2015-11-28 22:43:31

标签: java loops

全面检修:我修改了整个资源并找到了解决方案;这个问题已不再适用。

这是循环:

       for(String x : options){
            while(!(x.equals(input))){
                pl("\t Please enter a valid option!");
                input = TextIO.getlnWord().toUpperCase();
            }
        }

方案:我有一个名为options的字符串数组,其中包含多个值。我想验证用户是否从选项中输入了有效的字符串。如果是这样,继续前进。

问题:它没有验证,循环一直在运行。

我是否需要创建/覆盖contains()方法,然后使用其中的验证继续?如果有人能够解释这个问题并提供最佳或最常用的方式来做这样的事情,请随意。

1 个答案:

答案 0 :(得分:0)

在if / else语句中,其中一个块总是会运行。

if(input.equals(null)){
    pl("\t Please enter an option!");
} else {
    pl("\t Please enter a valid option!");
}

这意味着当你有这个if语句时,它总是在不运行if语句时运行一个else块。如果你不希望if语句这样做,你应该用else替换else if:

if(input.equals(null)){
    pl("\t Please enter an option!");
} else if (/* Validation logic goes here */) {
    pl("\t Please enter a valid option!");
}
编辑:等待刚编辑的问题中的代码还是让我失去理智?