はじめに
基礎的なアルゴリズムをJavaで実装していきます。
今回は 「うるう年の判定」 です。
うるう年の判定
目的:
西暦4桁の数値を受けとり、その年がうるう年か平年かを判定します。
手段:
「西暦が4で割り切れ、かつ100で割り切れなければうるう年。
ただし400で割り切れればうるう年。
どちらでもなければ平年。」というアルゴリズムです。
設計
[手段]で書いたロジックをそのままUrudoshiExec()に書いています。
値の入力と表示はUrudoshiStarter()に集め、そこからUrudoshiExec()を呼び出してうるう年の判定処理をしています。
ソース
フォルダ構成
ソースコード
main.java
package main;
import process.Urudoshi;
public class Main {
public static void main(String[] args) throws InterruptedException {
// うるう年クラスをインスタンス化して処理をスタート
Urudoshi urudoshi = new Urudoshi();
urudoshi.UrudoshiStarter();
}
}
Urudoshi.java
package process;
import java.util.Scanner;
public class Urudoshi {
public void UrudoshiStarter() {
int a = 0;
// ユーザーに数を2つ入力してもらう
Scanner sc = new Scanner(System.in);
System.out.println("【うるう年判定】");
System.out.println("西暦の年を入れると、うるう年かどうか表示します。");
System.out.println("4桁の値を整数で入力してください。");
a = Integer.parseInt(sc.nextLine());
sc.close();
boolean result = UrudoshiExec(a);
if (result) {
System.out.println("うるう年です。");
} else {
System.out.println("平年です。");
}
}
private boolean UrudoshiExec(int a) {
boolean Ans = false;
if (a % 4 == 0 && a % 100 != 0) {
Ans = true;
} else if (a % 400 == 0) {
Ans = true;
} else {
Ans = false;
}
return Ans;
}
}
実行
おわりに
アルゴリズム実装2本目でした。
関数の戻り値に真偽値を使うと、if文の条件式の中がシンプルにかけて良いですね。
参考図書
基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版 [矢沢 久雄]
その他の記事リンク
更新履歴
2024/10/23 [ソースコード] 変数Ansの初期化位置を、クラス直下からUrudoshiExec()内に移動