在下面尋找數組中最大數的代碼中,為什么maxput 在代碼之外?為什么max外面是括號?在這一行中,我無法理解if語句的構造。public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
2 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
這條線
if (myList[i] > max) max = myList[i];
可以看作
if (myList[i] > max)
{
max = myList[i];
}
即它有一個條件if,當它滿足時,有一個關于做什么的聲明。即第二個max不是 的邏輯表達式的if一部分,它是有條件執行的代碼的一部分。
總的效果是查看 中的每個條目myList,將其與之前看到的最大值進行比較,并保留較高的值,作為之前看到的最高值。
關于“為什么?”,這是一個品味問題。
優點是輸入的字符更少,閱讀的代碼“更短”。
我總是使用較長版本的原因主要是編碼規則,這些規則對于維護越重要,從事給定項目的不同人員越多。

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
假設如果您在 for 循環中聲明“double max = myList[0];”,對于每個迭代,max 變量將被聲明并初始化為列表中的第一個元素。
例如,如果列表包含 2, 4, 1, 9, 8 我們認為 2 是最大值(因此將 2 存儲在 max 變量中)然后將 2 與列表中的其他值進行比較
如果在 IF 中只有一個語句要執行,那么您可以編寫不帶括號的 IF
喜歡
如果(a>b)
System.out.println(a + "is greater");
它類似于
如果(a>b)
{
System.out.println(a + "is greater");
}
添加回答
舉報
0/150
提交
取消