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语句工作怎么能这样做而不会导致无限循环)?
你有一个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年之后进入一年,这需要一个错误消息.