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