gpt4 book ai didi

java - 我将如何打破程序中这一部分的循环?

转载 作者:行者123 更新时间:2023-12-01 19:12:39 25 4
gpt4 key购买 nike

public static void date1() {
int x = 0 ; //integer for looping

do // process to follow if length == 5
{
Scanner scanner = new Scanner(System.in);
try {
System.out.println("Please enter the first date ");
System.out.println("Please enter the year: ");
y1 = scanner.nextInt();

System.out.println("Please enter the month: ");
m1 = scanner.nextInt();

System.out.println("Please enter the day: ");
d1 = scanner.nextInt();
} catch (InputMismatchException inputMismatchException) {
scanner.nextLine();
System.err.println("You must enter intergers. Please try again. ");
}
x = x + 1 ; // set loop to three attempts
} while (x < 3) ; //do process occurs while attempts are under < 4
}

如果所有输入都正确(输入整数),我想打破循环。我不太确定使用什么命令来打破我创建的循环。预先感谢大家!

最佳答案

在关闭 try{} block 之前放置一个 break 命令。如果没有抛出异常,则执行break命令并退出循环。

不过,更好的方法是创建一个单独的方法来接受用户的单个输入,然后调用它三次。这样,如果只有第三个数字无效,则不必让用户再次输入前两个数字:

private static int getIntInput(){
while(true){
try{
return scanner.nextInt();
} catch(InputMismatchException e){
System.out.println("You must enter integers. Please try again.");
}
}
}

public static void date1(){
int x=0;
System.out.println("Please enter the first date ");
System.out.println("Please enter the year: ");
y1 = getIntInput();
System.out.println("Please enter the month: ");
m1 = getIntInput();
System.out.println("Please enter the day: ");
d1 = getIntInput();
}

当然,你可以让事情变得更奇特......我们可以向 getIntInput() 方法添加一个字符串输入,然后在每次接受输入时打印该字符串,这样用户就不会忘记什么他正试图进入。或者你可以清理语法,这样它就可以工作了(我认为编译器会提示 getIntInput 需要返回一个 int,就像我现在输入它的方式......)

关于java - 我将如何打破程序中这一部分的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com