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 + "年は平年");
}
}
この記事が気に入ったらサポートをしてみませんか?