JScript+WSHでプログラミング基礎100本ノック その37 実践2 うるう年判定

その37 うるう年判定

課題

1980~2024年がうるう年か判定し、下記のような一覧を出力してください。
※一覧化できていればなんでもOKです。

1980年はうるう年
1981年は平年
1982年は平年
(略)
2022年は平年
2023年は平年
2024年はうるう年
続行するには何かキーを押してください . . .

ヒント

うるう年は以下の条件を満たす年です。
・西暦年号が4で割り切れる年はうるう年となる
・ただし、西暦年号が100で割り切れる場合は平年となる
・しかし、西暦年号が400で割り切れる場合はうるう年となる


コード例

main.js
--------

var flagLeapYear;	// うるう年ならtrue,平年はfalse

for(var year = 1980; year <= 2024; year++){

	flagLeapYear = false;	// 基本は平年

	// 西暦年号が4で割り切れる年はうるう年となる
	if( year % 4 == 0){
		flagLeapYear = true;

		// ただし、西暦年号が100で割り切れる場合は平年となる
		if( year % 100 == 0){
			flagLeapYear = false;

			// しかし、西暦年号が400で割り切れる場合はうるう年となる
			if( year % 400 == 0){
				flagLeapYear = true;
			}
		}
	}

	if(flagLeapYear == true){
		WScript.echo( year + "年はうるう年");
	}else{
		WScript.echo( year + "年は平年");
	}
}

出力結果

1980年はうるう年
1981年は平年
1982年は平年
(略)
2022年は平年
2023年は平年
2024年はうるう年
続行するには何かキーを押してください . . .

解説

条件が複雑なので、記載された言葉の通りif文を入れ子にしました。
※if文の中にif文があるものなどを入れ子といいます。

2つ目のif文と3つ目のif文をまとめることも可能です。

var flagLeapYear;	// うるう年ならtrue,平年はfalse

for(var year = 1980; year <= 2024; year++){

	flagLeapYear = false;	// 基本は平年

	// 西暦年号が4で割り切れる年はうるう年となる
	if( year % 4 == 0){
		flagLeapYear = true;

		// ただし、西暦年号が100で割り切れる場合は平年となる
		// しかし、西暦年号が400で割り切れる場合はうるう年となる
		if( year % 100 == 0 && year % 400 != 0){
			flagLeapYear = true;
		}
	}

	if(flagLeapYear == true){
		WScript.echo( year + "年はうるう年");
	}else{
		WScript.echo( year + "年は平年");
	}
}

この記事が気に入ったらサポートをしてみませんか?