2020/06/18 公開
・3つの値の最大最小
与えられた3つの数値の中で、一番大きい値と、一番小さい値を見つける方法を紹介します。
ここでは、if文を使って最大・最小値を求める方法と、Mathクラスを使う2つの方法を説明します。
はじめに、if文を使うJavaソースコードをみてみましょう。
MinMax3_1.java ← クリックしてダウンロードページに移動001: public class MinMax3_1 { 002: // 最大値を戻すメソッド 003: static int maximum( int a, int b, int c ) 004: { 005: int ans; 006: 007: ans = a; 008: if ( ans < b ) ans = b; 009: if ( ans < c ) ans = c; 010: return ans; 011: } 012: 013: 014: // 最小値を戻すメソッド 015: static int minimum( int a, int b, int c ) 016: { 017: int ans; 018: 019: ans = a; 020: if ( ans > b ) ans = b; 021: if ( ans > c ) ans = c; 022: return ans; 023: } 024: 025: 026: public static void main( String[] args ) { 027: // 3つの変数を宣言 028: int a, b, c; 029: 030: // 3つの値を代入 031: a = 12; 032: b = 9; 033: c = 11; 034: 035: // 最大値 036: System.out.println( "最大値=" + maximum( a, b, c ) ); 037: 038: // 最小値 039: System.out.println( "最小値=" + minimum( a, b, c ) ); 040: } 041: }
MinMax3_1を実行
C:\talavax\javasample>java MinMax3_1
実行結果
最大値=12 最小値=9
ここからは、このソースコードを上から順番に解説していきます。
001: public class MinMax3_1 {
クラス名を、MinMax3_1としています。
002: // 最大値を戻すメソッド 003: static int maximum( int a, int b, int c ) 004: { 005: int ans; 006: 007: ans = a; 008: if ( ans < b ) ans = b; 009: if ( ans < c ) ans = c; 010: return ans; 011: }
最大値を求めるメソッドmaximumです。int型の3つの引数a、b、cを渡して、その中で一番大きい値を返すメソッドです。
この処理は、初めにaを最大値とみなして変数ansに代入します。次にansとbをif文で比較し、bが大きければansにbを代入します。最後にansとcをif文で比較し、cが大きければansにcを代入します。
変数ansに最大値が格納されているので、return文でansを戻します。
014: // 最小値を戻すメソッド 015: static int minimum( int a, int b, int c ) 016: { 017: int ans; 018: 019: ans = a; 020: if ( ans > b ) ans = b; 021: if ( ans > c ) ans = c; 022: return ans; 023: }
最小値を求めるメソッドminimumです。int型の3つの引数a、b、cを渡して、その中で一番小さい値を返すメソッドです。
この処理は、初めにaを最小値とみなして変数ansに代入します。次にansとbをif文で比較し、bが小さければansにbを代入します。最後にansとcをif文で比較し、cが小さければansにcを代入します。
変数ansに最小値が格納されているので、return文でansを戻します。
026: public static void main( String[] args ) { 027: // 3つの変数を宣言 028: int a, b, c; 029: 030: // 3つの値を代入 031: a = 12; 032: b = 9; 033: c = 11; 034: 035: // 最大値 036: System.out.println( "最大値=" + maximum( a, b, c ) ); 037: 038: // 最小値 039: System.out.println( "最小値=" + minimum( a, b, c ) ); 040: }
このmainメソッドからプログラムを実行します。int型の変数a、b、cに任意の値を代入し、上記のmaximumメソッドとminimumメソッドで最大値/最小値を求め、その結果をprintlnメソッドでコンソール出力しています。
次のJavaソースコードは、Mathクラスを利用したものです。
MinMax3_2.java ← クリックしてダウンロードページに移動001: public class MinMax3_2 { 002: // 最大値を戻すメソッド 003: static int maximum( int a, int b, int c ) 004: { 005: return Math.max( Math.max( a, b ), c ); 006: } 007: 008: 009: // 最小値を戻すメソッド 010: static int minimum( int a, int b, int c ) 011: { 012: return Math.min( Math.min( a, b ), c ); 013: } 014: 015: 016: public static void main( String[] args ) { 017: // 3つの変数を宣言 018: int a, b, c; 019: 020: // 3つの値を代入 021: a = 12; 022: b = 9; 023: c = 11; 024: 025: // 最大値 026: System.out.println( "最大値=" + maximum( a, b, c ) ); 027: 028: // 最小値 029: System.out.println( "最小値=" + minimum( a, b, c ) ); 030: } 031: }
MinMax3_2を実行
C:\talavax\javasample>java MinMax3_2
実行結果
最大値=12 最小値=9
ここからは、このソースコードを上から順番に解説していきます。
001: public class MinMax3_2 {
クラス名を、MinMax3_2としています。
002: // 最大値を戻すメソッド 003: static int maximum( int a, int b, int c ) 004: { 005: return Math.max( Math.max( a, b ), c ); 006: }
最大値を求めるメソッドmaximumです。int型の3つの引数a、b、cを渡して、その中で一番大きい値を返すメソッドです。
この処理には2つの値のうち大きいほうの値を戻すMath.maxメソッドを使っています。
Math.maxメソッド
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のうち、大きい値
Math_maxメソッドでaとbの大きい値を取得し、その値とcをMath_maxメソッドに渡して最大の値を取得しています。
これはトーナメント方式に似ていて、aとbの勝者とcが対戦し、勝ったほうが優勝というような感じです。
009: // 最小値を戻すメソッド 010: static int minimum( int a, int b, int c ) 011: { 012: return Math.min( Math.min( a, b ), c ); 013: }
最小さい値を求めるメソッドminimumです。int型の3つの引数a、b、cを渡して、その中で一番小さい値を返すメソッドです。
この処理には2つの値のうち大きいほうの値を戻すMath.minメソッドを使っています。
Math.minメソッド
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のうち、小さい値
Math_minメソッドでaとbの小さい値を取得し、その値とcをMath_minメソッドに渡して最小の値を取得しています。
016: public static void main( String[] args ) { 017: // 3つの変数を宣言 018: int a, b, c; 019: 020: // 3つの値を代入 021: a = 12; 022: b = 9; 023: c = 11; 024: 025: // 最大値 026: System.out.println( "最大値=" + maximum( a, b, c ) ); 027: 028: // 最小値 029: System.out.println( "最小値=" + minimum( a, b, c ) ); 030: }
このmainメソッドからプログラムを実行します。int型の変数a、b、cに任意の値を代入し、上記のmaximumメソッドとminimumメソッドで最大値/最小値を求め、その結果をprintlnメソッドでコンソール出力しています。
■関連コンテンツ
複数の値の最小値と最大値 | 配列から最小値、最大値を取得 |
数学関数について | 数学関数について解説 |
最小値・最大値 | Math.minとMath.maxの使い方について解説 |
![]() |
if文条件による処理の分岐に使用するif文について解説 |
■新着情報
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
