[英]java while loop inside or outside loop
我有以下代码显示下一个when年的时间。 在while循环中,我没有在while循环内找到该行leapYear = (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
在第一次尝试。 我不包括该行的原因是,如果jumpYear为false,则y将加1。然后while (!leapYear)
通过将新的y值插入到while循环上方的行中,再次测试while (!leapYear)
条件boolean leapYear = (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
。
我不明白为什么我需要再次在while循环中放入该jumpYear行。 我已经在循环上方使用了它,它将用于测试y++
之后的条件,因为while条件需要测试是否是否有jumpYear。
import java.util.Scanner;
public class NextLeapYear {
public static void main(String[] args) {
Scanner year = new Scanner (System.in);
System.out.print("Enter a year: ");
int y = year.nextInt();
boolean leapYear = (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0));
while (!leapYear) {
y++;
leapYear = (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0));
}
System.out.println("The next leap year is " + y + ".");
}
}
因为您的y在循环内变化。 jumpYear取决于y,因此一旦y发生变化,就需要重新计算。
由于您的Y值在循环内更改,因此,例如,如果1994是Y的值,则它是一个leapyear
,然后在循环内它不检查leap年,并且y的值预增加了++y
。 因此,现在如果是1995,则对条件进行测试,即!leapyear,并执行while循环,直到满足条件为止,因此直到下一个leap年,即1998年。因此,它将终止并打印the年。 希望这可以帮助。!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.