【Java】すぐに理解できる!minを使って2つの数値の小さい方を求める!
2つの数値の小さい方を求める場合にはMathクラスのminメソッドを使用します。
Mathクラスのminメソッドは、2つの数値を比較して小さい方の値を取得するメソッドであり、引数に指定できる値はdouble型・float型・int型・long型と種類があります。
しかし、int型とdouble型のように違う型同士を引数に指定すると比較はできませんので注意してください。
今回はMathクラスのminをメソッドを使って以下の場合に2つの数値の小さい方を求めていきます。
⚫︎ 2つの数値を比較し、小さい方を求める場合
⚫︎ 正の0と負の0を比較し、小さい方を求める場合
⚫︎ NaN(非数)値と比較し、小さい方を求める場合
目次
minメソッドとは
Mathクラスのminメソッドは、数値を比較してより小さな値を取得するメソッドとなります。
minメソッドの書き方
minメソッドの構文は下記となります。
1 |
Math.min(数値1, 数値2); |
minの()に数値1と数値2を指定することで数値1と数値2の値を比較し、小さい方の数値を取り出します。
また、比較対象のどちらかにNaN値が含まれている場合は「NaN」を戻します。
minメソッドの注意点
3つ以上の数値を比較することができない
minメソッドは3つ以上の数値を比較することはできません。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Main { public static void main(String[] args) throws Exception { int i_Value1 = 12; int i_Value2 = 14; int i_Value3 = 17; int max_Value = Math.max(i_Value1, i_Value2, i_Value3); } } |
出力結果
Main.java:9: error: no suitable method found for max(int,int,int)
適したメソッドが見つからない為、エラーが発生しています。
minメソッドは2つの数値を比較するメソッドなのでパラメータは2つになります。
2つの数値が違う型だと比較することができない
「int型とdouble型」のように2つの数値が違う型だと比較することができませんので注意してください。
例
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) throws Exception { int i_Value = 12; double d_Value = 11.567; int min_Value = Math.min(i_Value, d_Value); } } |
出力結果
incompatible types: possible lossy conversion from double to int
int型とdouble型を比較しようとしている為、エラーが発生しています。
2つの数値の小さい方を求めるサンプルコード
2つの数値の小さい方を求めるサンプルコードを紹介します。
2つの数値を比較する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 2つの数値の小さい方を求める public class Main { public static void main(String[] args) throws Exception { // 2つの数値を比較する int val1 = 123; int val2 = 456; int min_val = Math.min(val1, val2); System.out.println( "val1とval2とを比較:"+ min_val); } } |
出力結果
val1とval2とを比較:123
無限大の場合は最大値、最小値を四捨五入して返します。
正の0と負の0を比較する場合
例
1 2 3 4 5 6 7 8 9 10 |
// 2つの数値の小さい方を求める public class Main { public static void main(String[] args) throws Exception { //正のゼロと負のゼロを比較する System.out.println( "[0.0]と[-0.0]とを比較:"+ Math.min(0.0, -0.0)); } } |
出力結果
[0.0]と[-0.0]とを比較:-0.0
正のゼロと負のゼロを比較した場合は、正のゼロを戻します。
Nan値と比較する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 2つの数値の小さい方を求める public class Main { public static void main(String[] args) throws Exception { // NAN値と比較する System.out.println( "NaNと[456]とを比較:"+ Math.min(Double.NaN, 456)); System.out.println( "NaNと[-456]とを比較:"+ Math.min(Double.NaN, -456)); } } |
出力結果
NaNと[456]とを比較:NaN
NaNと[-456]とを比較:NaN
NaNが含まれる数字と比較する場合はNaNを返します。
今回のポイント
minで2つの数値の小さい方を求める
2つの数値の小さい方を求めるにはMathクラスのminメソッドを使用する。
⚫︎ Mathクラスのminメソッドで比較したい2つの数値をのパラメータとして渡すと、小さい方の数値を返す
⚫︎ minメソッドは3つ以上の数値を比較したり、違う型同士で比較することはできない
⚫︎ 正のゼロと負のゼロを比較した場合は、負のゼロを小さい数値として返す
⚫︎ 比較対象のどちらかに「NaN」値が含まれている場合、NaN小さい数値として返す
関連記事
2つの数値を比較し、大きい方を求めるmaxメソッドについてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。