我有一个计算leap年的程序,但是,它只能在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的值时,这才起作用。如果他们再次这样做,程序将继续运行。有没有一种方法可以执行我多次需要执行的语句“您已输入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();
}
您也可以尝试使用
do-while
循环来减少重复的代码:do{
System.out.println("Please enter a year after 1750:");
leapYear = in.nextInt();
}while(leapYear < 1750);
仅会提示用户输入1750年之后的年份,这需要输入错误消息。