我想寫一個比較3個數字並返回其中最大的方法。如何編寫一個採用int變量並返回最大值的方法?
這是我的代碼,但它不工作...
public int max(int x, int y, int z){
return Math.max(x,y,z);
}
如何將我的代碼進行修正?
我想寫一個比較3個數字並返回其中最大的方法。如何編寫一個採用int變量並返回最大值的方法?
這是我的代碼,但它不工作...
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個數字,按上面的代碼進行兩次這種方法。
對於任何數量的整型值,你可以這樣做(尖「O的帽子zapl):
public int max(int firstValue, int... otherValues) {
for (int value : otherValues) {
if (firstValue < value) {
firstValue = value;
}
}
return firstValue;
}
除上述之外,如果您使用的是不支持可變長度符(Java 1.4或更早版本)的較舊JVM版本,則方法簽名應爲'public int max(int [] values)',並且您需要從而傳入數組 – wattostudios
@WATTOStudios - 是的,varargs是在Java 5中引入的,因此它已經存在很長時間了。還有一些Java環境(如BlackBerry)是Java 1.4。 –
是啊,只是想提到它,你永遠不能告訴用戶實際上運行。儘管愛你的答案。 – wattostudios
如果Apache Commons Lang中是在classpath中,你可以使用NumberUtils
。
有幾個max
,min
函數。還有一個你想要的。
檢查API:因爲它擴展了標準的Java API http://commons.apache.org/lang/api/org/apache/commons/lang3/math/NumberUtils.html
下議院郎是非常有用的。
嘗試使用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);
}
對於3個實例的給定的問題,這是做到這一點的最簡單的方法。我也喜歡一般的解決方案,但對於這個特定的問題,我認爲這是最好的答案。 – tilois