ゆるゆるプログラミング

・3つの値の最大最小

与えられた3つの数値の中で、一番大きい値と、一番小さい値を見つける方法を紹介します。

例えば、968の場合、最大値9で、最小値6です。

ここでは、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 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のうち、大きい値

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 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のうち、小さい値

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文について解説

■新着情報

2020.07.08 公約数 公約数
2020.07.08 最大公約数 1番大きい約数は?
2020.06.18 3つの値の最大最小 3つの値の最大/最小値
2020.06.03 円を描く(テキスト版) テキストを円を描く
2020.06.02 文字の間違い探し どの文字が違う?

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

 

 

Topへ