java初学者。我试图创建一个do while循环,用户应该在其中输入一些信息。如果用户键入的信息正确 something_A
,程序应该继续要求用户输入 something_B
.
如果用户为此输入了不正确的信息,程序应该抛出相应的异常 InvalidExcep_B
. 我可以让所有这些工作,除了一旦抛出异常,程序会提示用户从一开始就输入信息。
我应该怎么做才能让程序只提示输入不正确的信息?
boolean continueInput = true;
userInput = new Scanner (System.in);
System.out.println();
do {
try {
System.out.print("Enter Something_A: ");
something_A = userInput.nextInt();
if (condition ok) {
run statements;
}
System.out.print("Enter Something_B: ");
something_B = userInput.nextInt();
if (condition ok) {
run statements;
}
System.out.print("Enter Something_C: ");
something_C = userInput.nextInt();
if (condition ok) {
run statements;
}
continueInput = false;
}
catch (InvalidExcep_A e) {
System.out.println(e.toString());
continueInput = true;
}
catch (InvalidExcep_B e) {
System.out.println(e.toString());
continueInput = true;
}
catch (InvalidExcep_C e) {
System.out.println(e.toString());
continueInput = true;
}
} while (continueInput == true);
System.out.print("Enter Something_D: ");
something_D = userInput.next();
printInfo (parameters);
}
这就是我目前所拥有的。谢谢您!
2条答案
按热度按时间vsikbqxv1#
你可以试试看。
将每个输入的do while分开(现在,您可以在一个do while中完成所有操作)。有点重复,但是嘿,它完成了任务。
存储一个[input,actions]列表,然后在while循环中遍历它,停止条件是一旦完成该列表。
vnjpjtjt2#
你的代码几乎是正确的,除非我们需要记住
Something_A
是否已完成。同样,对于Something_B
以及Something_C
我们必须记住它是否完成了。所以,条件Something_A
,Something_B
以及Something_C
应该是不同的。所以我选择了conditionA
,conditionB
以及conditionC
为了Something_A
,Something_B
以及Something_C
分别。以下代码应该可以解决您的问题: