2020.03.23
最小値・最大値について
はじめに
ここでの最小値は、与えられた2つの値のうち小さい方の値のことです。最大値は、与えられた2つの値のうち大きい方の値のことです。
例えば、8と13が与えられた場合、
最小値は、8 最大値は、13
です。
最小値・最大値を求めるメソッド
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.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のうち、大きい値
Javaソースコード
MinMax.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018
public class MinMax { public static void main( String[] args ) { int a, b, min, max; a = 60; b = 43; // 最小値を変数minに代入 min = Math.min( a, b ); // 最大値を変数maxに代入 max = Math.max( a, b ); // 結果を表示 System.out.println( "最小値=" + min ); System.out.println( "最大値=" + max ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis MinMax.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac MinMax.java
出力結果
最小値=43 最大値=60
最小値・最大値を求めるメソッドを自作
最小値・最大値のメソッドは、自作することができます。以下はその例です。
// int型の最小値 public static int min( int a, int b ) { if ( a < b ) return a; return b; } // int型の最大値 public static int max( int a, int b ) { if ( a > b ) return a; return b; } // long型の最小値 public static long min( long a, long b ) { if ( a < b ) return a; return b; } // long型の最大値 public static long max( long a, long b ) { if ( a > b ) return a; return b; } // float型の最小値 public static float min( float a, float b ) { if ( a < b ) return a; return b; } // float型の最大値 public static float max( float a, float b ) { if ( a > b ) return a; return b; } // double型の最小値 public static double min( double a, double b ) { if ( a < b ) return a; return b; } // double型の最大値 public static double max( double a, double b ) { if ( a > b ) return a; return b; } // byte型の最小値 public static byte min( byte a, byte b ) { return (byte)min( (int)a, (int)b ); } // byte型の最大値 public static byte max( byte a, byte b ) { return (byte)max( (int)a, (int)b ); } // short型の最小値 public static int short min( short a, short b ) { return (short)min( (int)a, (int)b ); } // short型の最大値 public static short max( short a, short b ) { return (short)max( (int)a, (int)b ); }
このソースコードのbyte型、short型の最小値と最大値を求めるメソッドは、int型の引数のint min( int a, int b )、int max( int a, int b )を再利用しています。これは、同じ処理のソースコードを書かない工夫です。
引数を(int)aと(int)bとすることで、int min( int a, int b )、int max( int a, int b )が呼ばれます。これは、引数の型が一致するメソッドが呼ばれるためです。メソッドの前に(byte)、(short)を付けることで戻り値の値を変換しています。
以上です。