未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【Java】基本構文に関する問題1-14

title


問題1-14

mainメソッドはすでに完成しています。(変更は禁止です)

mainメソッド内で呼び出している、int型の3つの引数の中で、一番小さいものの値を戻り値として返すminメソッドを作成してください。


【実行結果】

整数88、79、96の中で最小の値は79です


【MethodBasicPractice3.java】

public class MethodBasicPractice3 {
    public static void main(String[] args) {

        int x = 88;
        int y = 79;
        int z = 96;

        // minメソッドの呼び出し
        System.out.println("整数" + x + "、" + y + "、" + z + "の中で最小の値は");
        System.out.println(min(x, y, z) + "です");

    }


    // ここにminメソッドを定義してください


}


解答例

【MethodBasicPractice3.java】

public class MethodBasicPractice3 {
    public static void main(String[] args) {

        int x = 88;
        int y = 79;
        int z = 96;

        // minメソッドの呼び出し
        System.out.println("整数" + x + "、" + y + "、" + z + "の中で最小の値は");
        System.out.println(min(x, y, z) + "です");

    }


    // ここにminメソッドを定義してください
    // minメソッドの定義 その1
    public static int min(int x, int y, int z) {
        // 最小値変数の宣言と初期化(xを最小値と仮定)
        int minValue = x;

        // yの方が小さい場合、最小値変数の値を更新
        if(minValue > y) {
            minValue = y;
        }

        // zの方が小さい場合、最小値変数の値を更新
        if(minValue > z) {
            minValue = z;
        }

        return minValue;
    }

    // minメソッドの定義 その2
    public static int min2(int x, int y, int z) {
        // xの値がyやzの値より小さい場合
        if(x < y && x < z) {
            return x;
        }

        // yの値がzの値より小さい場合
        else if(y < z) {
            return y;
        }

        // それ以外(zの値が一番小さい)
        else {
            return z;
        }
    }

}


解説

今回のメソッド定義の問題で、解答例には2つのパターンを紹介しています。


「その1」では、非常にシンプルなアルゴリズムを採用しました。

考え方としては、

  1. 最小値を保持するための変数を宣言し、第一引数を最小値と仮定して代入する

  2. 最小値保持変数と第二引数を比較し、第二引数の方が小さければその値で最小値保持変数を更新する

  3. 最小値保持変数と第三引数を比較し、第三引数の方が小さければその値で最小値保持変数を更新する

  4. 戻り値に最小値保持変数を指定する

となります。


こうすれば、if文の条件式がゴチャゴチャしなくて済みます。



「その2」では、return文が散らかっている印象を与えるため、あまり良い書き方とは言えません。

戻り値用のローカル変数を宣言して、メソッドの最後に1回だけreturn文を記述するのがメソッドのスマートな書き方でしょう。


参考図書



LINE公式アカウント

仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】


LineOfficial

友だち追加