【发布时间】:2021-10-22 13:34:09
【问题描述】:
我尝试制作多个随机选择,以打印每个输入数字的消息,即一系列数字 (4 2 17 0),其中 0 将停止代码。输出错误
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number=scanner.nextInt();
int x = number;
do{switch(x) {
case 1:
System.out.println("Language selection");
break;
case 2:
System.out.println("Customer support");
break;
case 3:
System.out.println("Check the balance");
break;
case 4:
System.out.println("Check loan balance");
break;
case 0:
System.out.println("Exit");
break;
default:
return;
}
if (x==0)
{break;}
x++;
}
while (true);
}
} ```


【问题讨论】:
-
在每个 case 语句中都需要一个
break,否则它们就会失败。然后你需要更好的逻辑来退出循环(比如一个标签或设置一个布尔值并检查它而不是使用while(false)) -
谢谢,现在尝试使用 break,没有帮助。我必须使用 do while 作为锻炼的一部分
-
另外,
while(false)应该真的是while(true),否则你将在第一次迭代后立即退出循环,而不管其余代码做什么。 (while条件为真而不是假时循环) -
使用 while(true) 得到每个测试的“执行超时”
-
我刚刚注意到
do...while循环基本上什么都不做。你不应该有switchinside 循环吗?无论如何,如果你在这方面遇到困难,你可能应该重新阅读你用来学习 Java 的任何材料。因为我知道 下一个问题将是关于循环继续再次 因为您需要循环的退出条件。相反,请重新研究循环、条件和switch的工作原理,了解您的程序在做什么并尝试重新编写它。
标签: java switch-statement do-while break