我的程序用于在多维数组中搜索用户输入的状态。然后它供应州鸟和花。但是我无法弄清楚我需要将语句放在何处以退出循环。它将继续搜索数组以进行输入,并像我想要的那样反复询问问题。但是我尝试了一些不同的方法,当我输入没有时,它无法让它退出循环。
Scanner userInput = new Scanner(System.in);
while (true) {
System.out.print("Enter a State or None to exit: ");
String stateName = userInput.next();
for (int i = 0; i < stateInformation.length; i++) {
if (stateInformation[i][0].equalsIgnoreCase(stateName)) {
System.out.println(stateInformation[i][0] + ":\n " +
"The State bird is the " + stateInformation[i][1] + "\n " +
"The State Flower is the " + stateInformation[i][2]);
break;
}
}
}
答案 0 :(得分:2)
这是您在所选择的特定声明中使用break
的方式:
myLabel:
while (true)
{
while (true)
{
break myLabel; // This will break out of the outer loop that has been labeled.
}
}
答案 1 :(得分:0)
我假设您想要在循环时退出。您应该在for-loop之前检查用户输入的内容,如果它是None,请使用break。第二个选项是检查while参数中的输入是否为空。
答案 2 :(得分:0)
假设你想要摆脱for循环,如果你使用一个函数然后使用return如下所示,那就没问题了:
private Object searchData(...)
{
for (Type t : types2) {
if (some condition) {
// Do something and break...
return object;
}
}
}
答案 3 :(得分:0)
您的程序会提示用户输入None
退出。因此添加一个条件来处理该行为:
String stateName = userInput.nextLine();
if (stateName.equalsIgnoringCase("none")) {
break;
}
这将终止您的while (true)
循环。
正如评论中所讨论的,使用Scanner.nextLine()
捕获用户输入通常会更好。
答案 4 :(得分:0)
我想你要检查userInput是否为“None”,然后像这样突破while循环:
while (true) {
System.out.print("Enter a State or None to exit: ");
String stateName = userInput.next();
if ("None".equalsIgnoreCase(stateName)) break; // Added to break the while loop
for (int i = 0; i < stateInformation.length; i++) {
if (stateInformation[i][0].equalsIgnoreCase(stateName)) {
System.out.println(stateInformation[i][0] + ":\n " +
"The State bird is the " + stateInformation[i][1] + "\n " +
"The State Flower is the " + stateInformation[i][2]);
break;
}
}
}