2020.06.18

数学

3つの値の最大・最小

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

例えば、以下のような3つの値が与えられた場合、

	9、6、8

最小値最大値はそれぞれ

	最小値 = 6
	最大値 = 9

となります。

ここでは、if文を使って最大・最小値を求める方法と、Mathクラスを使う2つの方法を説明します。

Javaソースコード - if文を使う方法

はじめに、if文を使うJavaソースコードをみてみましょう。

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

正しい最大値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;
	}

最大値を求めるメソッド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
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;
	}

最小値を求めるメソッドminimumです。int型の3つの引数a、b、cを渡して、その中で一番小さい値を返すメソッドです。

この処理は、初めにaを最小値とみなして変数ansに代入します。次にansとbをif文で比較し、bが小さければansにbを代入します。最後にansとcをif文で比較し、cが小さければansにcを代入します。

変数ansに最小値が格納されているので、return文でansを戻します。

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クラスを使う方法

次の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

if文を使ったソースコードと同様に正しい最大値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 );
	}

最大値を求めるメソッド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
011
012
013
	// 最小値を戻すメソッド
	static int minimum( int a, int b, int c )
	{
		return Math.min( Math.min( a, b ), c );
	}

最小さい値を求めるメソッド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
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メソッドコンソール出力しています。

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

2つの値のうち、小さい方の値と、大きい方の値を取得する方法。

2020.03.23

複数の値のうち、一番小さい値と、一番大きい値を取得する方法。

2020.03.23

プログラミングで使う変数って何?

2020.03.23

プログラミング、ITに関する用語をまとめています。

2022.10.17

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

Javaプログラムの構成について解説しています。詳しくは、こちらをご覧ください。

2020.03.23

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

広告