3 つの数値を比較して最大のものを返すメソッドを作成しようとしています。
これは私のコードですが、動作しません...
public int max(int x, int y, int z){
return Math.max(x,y,z);
}
コードを修正するにはどうすればよいですか?
これを試して...
public int max(int x, int y, int z){
return Math.max(x,Math.max(y,z));
}
このメソッドMath.max()
は 2 つの引数しか受け付けないため、上記のコードのように 3 つの数値を比較する場合は、このメソッドを 2 回実行する必要があります。
3 つの整数引数の現在のソリューションでは、次のものを置き換えることができます。
Math.max(x,y,z)
と
Math.max(Math.max(x, y), z)
javadocは、Math.max
2 つの引数を取ることを示しています。
任意の数の int 値に対して、これを行うことができます (zapl に帽子をかぶせてください)。
public int max(int firstValue, int... otherValues) {
for (int value : otherValues) {
if (firstValue < value ) {
firstValue = value;
}
}
return firstValue;
}
JDK API を使用してみてください。
public static int max(int i, int... ints) {
int nums = new int[ints.length + 1];
nums[0] = i;
System.arrayCopy(ints, 0, nums, 1, ints.length);
Arrays.sort(nums);
return ints[nums.length - 1);
}
Apache Commons Lang がクラスパスにある場合は、NumberUtils
.
max
,関数がいくつかありmin
ます。また、あなたが欲しかったもの。
API を確認してください: http://commons.apache.org/lang/api/org/apache/commons/lang3/math/NumberUtils.html
Commons Lang は、標準の Java API を拡張するので便利です。