为了账号安全,请及时绑定邮箱和手机立即绑定

这个if后面多个;,运行结果数组最大值和最小值都为20,这是怎么运行成20的呢

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(nums[i]>max);

           max=nums[i];

        

        // 如果当前值小于min,则替换min的值

           if(nums[i]<min);

           min=nums[i];

        

        // 累加求和

           sum+=nums[i];

        

}

        

        // 求平均值

          avg=sum/nums.length;

        

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

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

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

}

}


正在回答

3 回答

其实这个很简单,你加了;后,if()就独立出来了,就只是一个判断,不管是还是否都没动作,然后继续后面的赋值(跟if()无关了),所以运行到最后max,min的值都等于nums的最后一个值

1 回复 有任何疑惑可以回复我~
#1

Gir非碼農

正解!!
2017-09-23 回复 有任何疑惑可以回复我~
#2

慕勒2326186 提问者

非常感谢!
2017-09-24 回复 有任何疑惑可以回复我~
#3

慕斯0253470

学习快乐!
2017-09-24 回复 有任何疑惑可以回复我~
#4

魂千泷

如果最后一个数是4,结果会输出4吧
2017-10-05 回复 有任何疑惑可以回复我~
#5

慕斯0253470 回复 魂千泷

对的啊
2017-10-05 回复 有任何疑惑可以回复我~
查看2条回复

if(.......){..........}

if后面没分号


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

你的代码有bug

 if(nums[i]>max);

           max=nums[i];      

        // 如果当前值小于min,则替换min的值

           if(nums[i]<min);

           min=nums[i];

这段代码的if(...)后面不应该加“;”


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

举报

0/150
提交
取消

这个if后面多个;,运行结果数组最大值和最小值都为20,这是怎么运行成20的呢

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号