3

3 つの数値を比較して最大のものを返すメソッドを作成しようとしています。

これは私のコードですが、動作しません...

public int max(int x, int y, int z){
    return Math.max(x,y,z);
} 

コードを修正するにはどうすればよいですか?

4

5 に答える 5

5

これを試して...

public int max(int x, int y, int z){
    return Math.max(x,Math.max(y,z));
} 

このメソッドMath.max()は 2 つの引数しか受け付けないため、上記のコードのように 3 つの数値を比較する場合は、このメソッドを 2 回実行する必要があります。

于 2012-11-20T01:36:07.790 に答える
4

3 つの整数引数の現在のソリューションでは、次のものを置き換えることができます。

Math.max(x,y,z)

Math.max(Math.max(x, y), z)

javadocは、Math.max2 つの引数を取ることを示しています。

于 2012-11-20T01:35:13.550 に答える
4

任意の数の int 値に対して、これを行うことができます (zapl に帽子をかぶせてください)。

public int max(int firstValue, int... otherValues) {
    for (int value : otherValues) {
        if (firstValue < value ) {
            firstValue = value;
        }
    }
    return firstValue;
}
于 2012-11-20T01:36:20.310 に答える
0

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);
}
于 2012-11-20T02:44:42.117 に答える
0

Apache Commons Lang がクラスパスにある場合は、NumberUtils.

max,関数がいくつかありminます。また、あなたが欲しかったもの。

API を確認してください: http://commons.apache.org/lang/api/org/apache/commons/lang3/math/NumberUtils.html

Commons Lang は、標準の Java API を拡張するので便利です。

于 2012-11-20T02:16:52.483 に答える