敘述的組成
Java語言的結構
文字描述如何判斷閏年 透過西元幾年來判斷閏年:4的倍數的年份是閏年,100的倍數的年份是平年,400的倍數的年份是閏年,也就是說,400年中,只有97個閏年(4的倍數有100個,100的倍數有4個,400的倍數有1個)。
以流程圖(Flow Chart)來表示

以程式來表示
#include <stdio.h>
int main() {
int year;
printf("Please input an the year:"); // 提示使用者輸入資料
if (scanf("%d", &year) != 1) { // 輸入年份year
printf("輸入錯誤\n");
return;
}
if (year%4 == 0) {
if (year%100 == 0) {
if (year%400 == 0) {
printf("%d是閏年\n", year);
} else {
printf("%d不是閏年\n", year);
}
} else {
printf("%d是閏年\n", year);
}
} else {
printf("%d不是閏年\n", year);
}
}
如果我們把所有可得到閏年的路徑,集合在一起,則更簡潔的寫法是
#include <stdio.h>
int main() {
int year;
printf("Please input the year:"); // 提示使用者輸入資料
if (scanf("%d", &year) != 1) { // 輸入年份year
printf("輸入錯誤\n");
return;
}
if (year%400 == 0 || year%4 == 0 && year%100 != 0) {
printf("%d是閏年\n", year);
} else {
printf("%d不是閏年\n", year);
}
}
Java的範例
import java.util.*;
public class Leap {
public static void main(String[] argv) throws Exception {
int year = 1984;
System.out.println("Please input the year:");
Scanner in = new Scanner(System.in);
if (!in.hasNextInt()) {
System.out.println("輸入錯誤");
return;
}
year = in.nextInt();
if (year%400 == 0 || year%4 == 0 && year%100 != 0) {
System.out.println(year+"是閏年");
} else {
System.out.println(year+"不是閏年");
}
}
}