让我的程序返回到 "top"(if 语句)(Java)

Getting my program to go back to the "top" (if statement) (Java)

我有一个计算闰年的程序,但是,它只能在 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();
    }

我的解决方案是放置一个 if 语句。然而,我意识到,这只有在用户输入一次低于 1750 的值时才有效。如果他们再次这样做,程序将继续进行。有没有一种方法可以根据需要多次执行语句 "You have entered a year before 1750, please try again :" 而无需重新编写它?

我在想也许 while 语句可以工作(如果 while 语句可以工作,我怎么能在不导致无限循环的情况下做到这一点)?

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();
}

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

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

用户将被重新提示输入 1750 之后的年份,这会需要一条错误消息。

while(leapYear<1750)

而不是:

if(leapYear<1750)