让我的程序回到"顶部"(if语句)(Java)

Ida*_*ber 1 java if-statement while-loop leap-year

我有一个计算闰年的程序,但它只能在1750年左右开始工作,所以我希望我的用户只能在1750年之后输入数字.

System.out.println("Enter a year after 1750:");
    leapYear = in.nextInt();

    if(leapYear<1750){
        System.out.println("You have entered a year before 1750, please try again :");
        leapYear  = in.nextInt();
    }
Run Code Online (Sandbox Code Playgroud)

我的解决方案是提出一个if语句.然而,我意识到,只有当用户输入一次低于1750的东西时,这才有效.如果他们再次这样做,程序将继续.有没有办法可以执行声明"你已经在1750年之前进入了一年,请再试一次:"我需要多次而不重写它?

我想也许一个while语句可以工作(如果一个while语句工作怎么能这样做而不会导致无限循环)?

Cub*_*key 6

你有一个while语句在正确的轨道上.保持它无限执行非常简单.一旦用户输入正确的年份,循环条件将评估为false并退出.

System.out.println("Enter a year after 1750:");
leapYear = in.nextInt();

while(leapYear < 1750){
     System.out.println("You have entered a year before 1750, please try again :");
     leapYear  = in.nextInt();
}
Run Code Online (Sandbox Code Playgroud)

您还可以尝试do-while循环来减少重复的代码:

do{
    System.out.println("Please enter a year after 1750:");
    leapYear = in.nextInt();
}while(leapYear < 1750);
Run Code Online (Sandbox Code Playgroud)

用户将被重新命名为在1750年之后进入一年,这需要一个错误消息.