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メソッドコンソール出力しています。

以上です。

関連コンテンツ

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

2020.03.23

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

2020.03.23

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

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

2020.03.23

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

2022.10.17

九九(くく)の表を作る方法を詳しく解説しています。ソースコード付きです。

2019.01.03

割り算で割り切れずに残った端数を剰余(余り)といいます。この剰余の計算をJavaのソースコードを使って解説しています。

2020.03.23

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

2023.03.20

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

2020.03.20

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

2020.03.23

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

2022.12.13

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

2020.03.23

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

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

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

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

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

2022.08.03

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

2020.03.23

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

2020.03.23

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

広告