亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么加了continue后,最大最小值不變,平均值變了


public class HelloWorld {

? ??

? ? public static void main(String[] args) {

? ? ? ??

// 定義一個整型數組,并賦初值

int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

? ? ? ??

int max = nums[0]; // 假定最大值為數組中的第一個元素

int min = nums[0]; // 假定最小值為數組中的第一個元素

double sum = 0;// 累加值

double avg = 0;// 平均值

? ? ? ??

for (int i = 0; i < nums.length; i++) { // 循環遍歷數組中的元素

? ? ? ? // 如果當前值大于max,則替換max的值

if(max<nums[i]){

? ?max=nums[i];

? ?continue;

}


? ? ? ? // 如果當前值小于min,則替換min的值

? ? ? ? if(min>nums[i]){

? ?min=nums[i];

? ?continue;

}

? ? ? ? // 累加求和

? ? ? ? sum=sum+nums[i];

? ? ? ??

}

avg=sum/nums.length;

? ? ? ??

? ? ? ? // 求平均值

? ? ? ?

? ? ? ??

System.out.println("數組中的最大值:" + max);

System.out.println("數組中的最小值:" + min);

System.out.println("數組中的平均值:" + avg);

}

}


正在回答

5 回答

continue 會讓程序退出重新開始for循環,你這個語句還沒運行就跳過了

1 回復 有任何疑惑可以回復我~

首先要知道,Continue是一個跳出循環語句的條件,初始時,max和min都是61,第一次比較時nums「1」為61,if語句都不成立? 所以直接執行sum1=61;第二次比較時;nums=23;第一個if不成立跳過,第二個語句min=23;交換成功后continue執行直接跳出循環,不執行sum=sum+nums「i」;以此類推會發現,當max或者min交換成功的時候,sum=sum+nums「i」都是不執行的;導致最后sum加和的只有61、13、20.最后算平均值的時候也只有這三個值的加和除所有數的個數 ,結果就非常小了。

(如有錯誤,歡迎指正)


0 回復 有任何疑惑可以回復我~

代碼不僅僅是自己看,以后工作會有小組,大家會看,能簡單明了就簡單明了,if判斷條件合理就會運行內部代碼,自然不會去運行下一個,而continue則是跳出當前循環,執行下一次了,后面的循環都不會執行,sum變了,平均值當然也會變

0 回復 有任何疑惑可以回復我~

為什么要多此一舉呢,代碼越簡單越好!

0 回復 有任何疑惑可以回復我~

你把continue語句去掉就行


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么加了continue后,最大最小值不變,平均值變了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號