2020.06.18
3つの値の最大・最小
はじめに
与えられた3つの数値の中で、一番大きい値と、一番小さい値を見つける方法を紹介します。
例えば、以下のような3つの値が与えられた場合、
9、6、8
最小値 = 6 最大値 = 9
となります。
Javaソースコード - if文を使う方法
MinMax3_1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041
public class MinMax3_1 { // 最大値を戻すメソッド static int maximum( int a, int b, int c ) { int ans; ans = a; if ( ans < b ) ans = b; if ( ans < c ) ans = c; return ans; } // 最小値を戻すメソッド static int minimum( int a, int b, int c ) { int ans; ans = a; if ( ans > b ) ans = b; if ( ans > c ) ans = c; return ans; } public static void main( String[] args ) { // 3つの変数を宣言 int a, b, c; // 3つの値を代入 a = 12; b = 9; c = 11; // 最大値 System.out.println( "最大値=" + maximum( a, b, c ) ); // 最小値 System.out.println( "最小値=" + minimum( a, b, c ) ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis MinMax3_1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac MinMax3_1.java
MinMax3_1を実行
C:\talavax\javasample>java MinMax3_1
最大値=12 最小値=9
ここからは、このソースコードを上から順番に解説していきます。
001
public class MinMax3_1 {
クラス名を、MinMax3_1としています。
002 003 004 005 006 007 008 009 010 011
// 最大値を戻すメソッド static int maximum( int a, int b, int c ) { int ans; ans = a; if ( ans < b ) ans = b; if ( ans < c ) ans = c; return ans; }
この処理は、初めにaを最大値とみなして変数ansに代入します。次にansとbをif文で比較し、bが大きければansにbを代入します。最後にansとcをif文で比較し、cが大きければansにcを代入します。
014 015 016 017 018 019 020 021 022 023
// 最小値を戻すメソッド static int minimum( int a, int b, int c ) { int ans; ans = a; if ( ans > b ) ans = b; if ( ans > c ) ans = c; return ans; }
この処理は、初めにaを最小値とみなして変数ansに代入します。次にansとbをif文で比較し、bが小さければansにbを代入します。最後にansとcをif文で比較し、cが小さければansにcを代入します。
026 027 028 029 030 031 032 033 034 035 036 037 038 039 040
public static void main( String[] args ) { // 3つの変数を宣言 int a, b, c; // 3つの値を代入 a = 12; b = 9; c = 11; // 最大値 System.out.println( "最大値=" + maximum( a, b, c ) ); // 最小値 System.out.println( "最小値=" + minimum( a, b, c ) ); }
このmainメソッドからプログラムを実行します。int型の変数a、b、cに任意の値を代入し、上記のmaximumメソッドとminimumメソッドで最大値/最小値を求め、その結果をprintlnメソッドでコンソール出力しています。
Javaソースコード - Mathクラスを使う方法
MinMax3_2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
public class MinMax3_2 { // 最大値を戻すメソッド static int maximum( int a, int b, int c ) { return Math.max( Math.max( a, b ), c ); } // 最小値を戻すメソッド static int minimum( int a, int b, int c ) { return Math.min( Math.min( a, b ), c ); } public static void main( String[] args ) { // 3つの変数を宣言 int a, b, c; // 3つの値を代入 a = 12; b = 9; c = 11; // 最大値 System.out.println( "最大値=" + maximum( a, b, c ) ); // 最小値 System.out.println( "最小値=" + minimum( a, b, c ) ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis MinMax3_2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac MinMax3_2.java
MinMax3_2を実行
C:\talavax\javasample>java MinMax3_2
最大値=12 最小値=9
ここからは、このソースコードを上から順番に解説していきます。
001
public class MinMax3_2 {
クラス名を、MinMax3_2としています。
002 003 004 005 006
// 最大値を戻すメソッド static int maximum( int a, int b, int c ) { return Math.max( Math.max( a, b ), c ); }
この処理には2つの値のうち大きいほうの値を戻すMath.maxメソッドを使っています。
Math.maxメソッド
public static int Math.max( int a, int b ) public static long Math.max( long a, long b ) public static float Math.max( float a, float b ) public static double Math.max( double a, double b )
・2つの値のうち大きい方を返します。 パラメータ a : 1つめの値 b : 2つめの値 戻り値 aとbのうち、大きい値
これはトーナメント方式に似ていて、aとbの勝者とcが対戦し、勝ったほうが優勝というような感じです。
009 010 011 012 013
// 最小値を戻すメソッド static int minimum( int a, int b, int c ) { return Math.min( Math.min( a, b ), c ); }
この処理には2つの値のうち大きいほうの値を戻すMath.minメソッドを使っています。
Math.minメソッド
public static int Math.min( int a, int b ) public static long Math.min( long a, long b ) public static float Math.min( float a, float b ) public static double Math.min( double a, double b )
・2つの値のうち小さい方を返します。 パラメータ a : 1つめの値 b : 2つめの値 戻り値 aとbのうち、小さい値
016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
public static void main( String[] args ) { // 3つの変数を宣言 int a, b, c; // 3つの値を代入 a = 12; b = 9; c = 11; // 最大値 System.out.println( "最大値=" + maximum( a, b, c ) ); // 最小値 System.out.println( "最小値=" + minimum( a, b, c ) ); }
このmainメソッドからプログラムを実行します。int型の変数a、b、cに任意の値を代入し、上記のmaximumメソッドとminimumメソッドで最大値/最小値を求め、その結果をprintlnメソッドでコンソール出力しています。
以上です。