0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】うるう年の判定をJavaで実装してみる【アルゴリズム】

Last updated at Posted at 2024-10-21

はじめに

基礎的なアルゴリズムをJavaで実装していきます。
今回は 「うるう年の判定」 です。

うるう年の判定

目的:
西暦4桁の数値を受けとり、その年がうるう年か平年かを判定します。

手段:
「西暦が4で割り切れ、かつ100で割り切れなければうるう年。
 ただし400で割り切れればうるう年。
 どちらでもなければ平年。」というアルゴリズムです。

設計

[手段]で書いたロジックをそのままUrudoshiExec()に書いています。
値の入力と表示はUrudoshiStarter()に集め、そこからUrudoshiExec()を呼び出してうるう年の判定処理をしています。

ソース

フォルダ構成

image.png

ソースコード

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;
	}
}

実行

うるう年動作.gif

おわりに

アルゴリズム実装2本目でした。
関数の戻り値に真偽値を使うと、if文の条件式の中がシンプルにかけて良いですね。

参考図書

基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版 [矢沢 久雄]

その他の記事リンク

更新履歴

2024/10/23 [ソースコード] 変数Ansの初期化位置を、クラス直下からUrudoshiExec()内に移動

0
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?