Java 我如何打破我程序中的循环? publicstaticvoiddate1(){ int x=0;//用于循环的整数 如果长度=5,则执行//要遵循的过程 { 扫描仪=新的扫描仪(System.in); 试一试{ System.out.println(“请输入第一个日期”); System.out.println(“请输入年份:”); y1=scanner.nextInt(); System.out.println(“请输入月份:”); m1=scanner.nextInt(); System.out.println(“请输入日期:”); d1=scanner.nextInt(); }捕获(输入不匹配异常输入不匹配异常){ scanner.nextLine(); System.err.println(“您必须输入整数,请重试”); } x=x+1;//将循环设置为三次尝试 }while(x

Java 我如何打破我程序中的循环? publicstaticvoiddate1(){ int x=0;//用于循环的整数 如果长度=5,则执行//要遵循的过程 { 扫描仪=新的扫描仪(System.in); 试一试{ System.out.println(“请输入第一个日期”); System.out.println(“请输入年份:”); y1=scanner.nextInt(); System.out.println(“请输入月份:”); m1=scanner.nextInt(); System.out.println(“请输入日期:”); d1=scanner.nextInt(); }捕获(输入不匹配异常输入不匹配异常){ scanner.nextLine(); System.err.println(“您必须输入整数,请重试”); } x=x+1;//将循环设置为三次尝试 }while(x,java,Java,如果所有输入都正确(输入整数),我想中断循环。我不太确定使用什么命令来打破我创建的循环。 提前谢谢大家 您可以添加一个变量boolean stop=false,然后将while修改为while(x

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

您可以添加一个变量
boolean stop=false
,然后将while修改为
while(x<3 | stop==true)
。一旦您对输入感到满意,然后添加一些代码来设置
stop=true

您可以添加一个变量
boolean stop=false
,然后将while修改为
while(x<3 | | stop==true)
。一旦您对输入感到满意,就添加一些代码来设置
stop=true

在关闭
try{}
块之前,先输入
break
命令。如果没有抛出异常,将执行break命令并退出循环

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

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
}

当然,你可以让事情变得更新奇。。。我们可以在getIntInput()方法中添加字符串输入,然后每次接受输入时都打印该字符串,这样用户就不会忘记要输入的内容。或者您可以清理语法,使其正常工作(我想编译器会抱怨getIntInput需要返回一个int,就像我现在键入的那样…

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

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

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
}

当然,你可以让事情变得更新奇。。。我们可以在getIntInput()方法中添加字符串输入,然后每次接受输入时都打印该字符串,这样用户就不会忘记要输入的内容。或者您可以清理语法,使其正常工作(我想编译器会抱怨getIntInput需要返回一个int,就像我现在键入的那样…

这里有一个提示:当所有输入都正确时,“中断”退出循环。

这里有一个提示:“中断”当所有输入都正确时退出循环。

有很多方法可以做到这一点。您可以使用
中断
,使用布尔值。。为什么这个方法是静态的?????有很多方法可以做到这一点。您可以使用
中断
,使用布尔值。。为什么这个方法是静态的?????你根本不需要任何循环。您可以在catch中进行递归调用,根本不需要任何循环。您可以在catch中进行递归调用。