Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java循环在第一次输出时卡住_Java_Loops - Fatal编程技术网

java循环在第一次输出时卡住

java循环在第一次输出时卡住,java,loops,Java,Loops,全面检修:我修改了整个来源并找到了解决方案;这个问题不再适用 以下是循环: for(String x : options){ while(!(x.equals(input))){ pl("\t Please enter a valid option!"); input = TextIO.getlnWord().toUpperCase(); } } 场景:

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

以下是循环:

       for(String x : options){
            while(!(x.equals(input))){
                pl("\t Please enter a valid option!");
                input = TextIO.getlnWord().toUpperCase();
            }
        }
场景:我有一个名为
options
的字符串数组,其中充满了值。我想验证用户是否从选项中输入了有效字符串。如果是的话,继续前进

问题:未验证,循环继续运行


我是否需要创建/重写
contains()
方法,然后使用该方法的验证继续?如果有人能解释这个问题,并以最好或最受欢迎的方式提供意见,请随意。

在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(input.equals(null)){
    pl("\t Please enter an option!");
} else if (/* Validation logic goes here */) {
    pl("\t Please enter a valid option!");
}

编辑:等等,问题中的代码是刚刚编辑的还是我疯了?

input.equals(null)如果输入为null,您将永远不会输入,如果输入,它将抛出null指针。因此,通过调用input=TextIO.getlnWord().toUpperCase(),输入不能变为null;因为您在尝试执行时得到了空指针。toUpperCase();我认为TextIO涵盖了这个例外;我只是再试了一次,它没有输出
if
语句。我也必须处理这个问题。关于如何处理此验证的任何其他注释?什么是
TextIO.getlnWord()
,什么是
input
初始化为(在循环之前)?典型的选项解析将迭代输入,对照已知选项进行检查,并设置选项值。例如,您可以使用带有
选项的哈希表作为键,并通过查看
HashTable.values()
,检查它们是否都已设置。我建议您重新考虑尝试执行的操作。。。while语句看起来也很奇怪,TextIO.getlnWord()将在您的while。。。怀疑它。。。删除,同时也请更新问题的文本。我删除了
input.equals(null)
异常,请检查编辑。但是@Xyexs我尝试了这个,并且验证了它。我不敢相信我忽略了关于
if/else
sb的简单事实,但现在我必须找到另一种解决方法