使用 If 语句、嵌套 If 语句和 Else If 语句编写 Java 闰年程序,并提供示例。在深入闰年程序示例之前,我们先了解一下它的逻辑和定义。
Java 闰年程序场景:普通年份有 365 天,而闰年有 366 天。这额外的一天添加到二月份,所以我们得到 2 月 29 日。根据数学,除百年外,能被四整除的年份称为闰年。百年是指以 00 结尾的年份,例如 1200、1300、2400、2500 等(显然它们能被 100 整除)。我们必须对这些百年进行进一步计算,以检查 Java 闰年。
- 如果百年能被 400 整除,那么该年就是闰年。
- 如果百年不能被 400 整除,那么它就不是。
使用 If 语句检查闰年的 Java 程序
此程序允许用户输入任何年份。然后,此 Java 程序将使用 If Else 语句检查用户输入的年份是否是闰年。
package DatePrograms;
import java.util.Scanner;
public class LeapYearUsingIf {
private static Scanner sc;
public static void main(String[] args) {
int year;
sc = new Scanner(System.in);
System.out.println("\n Please Enter any year you wish: ");
year = sc.nextInt();
if (( year%400 == 0)|| (( year%4 == 0 ) &&( year%100 != 0))) {
System.out.format("\n %d is a Leap Year. \n", year);
}
else {
System.out.format("\n %d is NOT a Leap Year. \n", year);
}
}
}

让我们检查一个普通年份。
Please Enter any year you wish:
2015
2015 is NOT.
在这个 Java 闰年程序中,由于我们必须在一个 If 语句中检查多个条件,因此我们使用了逻辑与和逻辑或运算符。让我们将表达式分解以便更好地理解。
1: ( year % 400 == 0)||
2: ( year % 4 == 0 ) &&
3: ( year % 100 != 0))
第一个条件 (year%400 == 0) 将检查 (year%400) 的余数是否精确等于 0。根据程序算法,任何能被 400 整除的年份都是闰年。
或者第二个Java If Else 语句条件包含两个语句,因此它们都必须为 TRUE。
- 在这个闰年程序中,第一个条件 (year%4 == 0) 将检查 (year % 4) 的余数是否精确等于 0。如果条件为 False,它将退出,因为检查其他条件没有意义。它不是闰年。并且
- 第二个条件将检查 (year % 100) 的余数是否不等于 0。如果为 TRUE,则给定的数字不是百年。
- 任何能被四整除但不能被 100 整除的数字,该数字就是闰年。
使用 Else If 语句的 Java 闰年程序
此程序允许用户输入任何年份。然后,程序将使用Else If 语句检查用户输入的年份是否是闰年。
在此程序中,前两个语句要求用户输入任何年份以检查该年份是否是闰年。接下来,我们将用户输入的数值赋给 year 变量。
- 第一个 If 条件将检查 (year % 400) 的余数是否精确等于 0。根据算法,任何能被 400 整除的年份都是闰年。如果此条件失败,它将转到下一个。
- Java 闰年程序中的第二个 If 条件将检查 (year % 100) 的余数是否精确等于 0。根据算法,任何不能被 400 整除但能被 100 整除的年份都不是闰年(百年)。我们在第一个 If 语句中检查了 (year % 400)。因为失败了,所以它跳到了第二个条件。如果第一个和第二个条件都失败,它将转到第三个。
- 第三个条件将检查 year mod 4 是否等于 0。如果此条件为 True,则给定的年份是闰年,因为我们已经在上一个条件中检查了百年。如果所有语句都失败,它将转到最后的 Else 语句。
- 如果上述语句失败,则不是闰年。
package DatePrograms;
import java.util.Scanner;
public class LeapYearUsingElseIf {
private static Scanner sc;
public static void main(String[] args) {
int year;
sc = new Scanner(System.in);
System.out.println("\n Please Enter any year you wish: ");
year = sc.nextInt();
if ( year % 400 == 0) {
System.out.format("\n %d is a Leap Year. \n", year);
}
else if (year%100 == 0) {
System.out.format("\n %d is NOT. \n", year);
}
else if(year%4 == 0) {
System.out.format("\n %d is a Leap Year. \n", year);
}
else {
System.out.format("\n %d is NOT. \n", year);
}
}
}

使用嵌套 If 语句检查闰年的 Java 程序
此程序帮助用户输入任何年份。然后,程序将使用嵌套 If 检查用户输入的年份是否是闰年。
package DatePrograms;
import java.util.Scanner;
public class LeapYearUsingNestedIf {
private static Scanner sc;
public static void main(String[] args) {
int year;
sc = new Scanner(System.in);
System.out.println("\n Please Enter any year you wish: ");
year = sc.nextInt();
if ( year % 4 == 0) {
if (year%100 == 0) {
if(year%400 == 0) {
System.out.format("\n %d is a Leap Year. \n", year);
}
else {
System.out.format("\n %d is NOT. \n", year);
}
}
else {
System.out.format("\n %d is a Leap Year. \n", year);
}
}
else {
System.out.format("\n %d is NOT. \n", year);
}
}
}

在此程序中,用户将输入任何年份以检查该年份是否为闰年。第一个 If 条件将检查 (year%4) 的余数是否精确等于 0。
- 如果表达式的求值为 False,则给定的数字不是。
- 如果条件为 True,我们必须进一步检查百年。因此,Javac 编译器将进入嵌套 If 条件。
闰年程序的第二个 If 条件将检查 (year%100) 的余数是否精确等于 0。
- 如果此表达式的结果为 False,则该年份不是百年。因此,给定的数字是闰年。
- 如果条件为 True,我们必须检查该数字是否能被 400 整除。因此,Javac 编译器将进入另一个嵌套 If 条件。
在此条件下,Javac 将检查 (year%400) 的余数是否精确等于 0。
- 如果条件为 False,则给定的数字不是。
- 如果表达式的求值为 True,则给定的数字是闰年。
使用 Oops 的 Java 闰年程序
这个程序允许输入任何正整数(年份)。然后,程序检查给定的年份是否为闰年。在此示例中,我们使用面向对象编程来划分代码。
为此,我们将首先创建一个类,该类包含一个递归反转整数的方法。
package DatePrograms;
public class LeapYear {
public int CheckLeapYear(int year) {
if (( year%400 == 0)|| (( year%4 == 0 ) && ( year%100 != 0))) {
return year;
}
else {
return 0;
}
}
}
在闰年程序的 Main 程序中,我们将创建上述类的实例并调用方法。
package DatePrograms;
import java.util.Scanner;
public class LeapYearUsingClass {
private static Scanner sc;
public static void main(String[] args) {
int year, leap;
sc = new Scanner(System.in);
System.out.println(" Please Enter any year you wish: ");
year = sc.nextInt();
LeapYear ly = new LeapYear();
leap = ly.CheckLeapYear(year);
if(leap != 0) {
System.out.format("\n %d is a Leap Year. \n", year);
}
else {
System.out.format("\n %d is NOT. \n", year);
}
}
}
Please Enter any year you wish:
2032
2032 is a Leap Year.
LeapYear 类分析
在这个 Java 闰年程序中,我们首先声明了一个带有单个参数的整数函数 CheckLeapYear。在函数中,我们使用 If 语句来检查给定的年份是否是闰年,如果是,则返回该年份。否则,返回零。我们已经在上面的示例中解释了逻辑。
Main 类分析
首先,我们创建了 LeapYear 类的实例/创建了一个对象。
LeapYear ly = new LeapYear();
接下来,我们调用 CheckLeapYear 方法。
leap = ly.CheckLeapYear(year);
最后,System.out.println 语句将打印输出。
评论已关闭。