为什么if循环不起作用呢?

来源:6-5 使用循环操作 Java 中的数组

qq_析木_0

2017-03-14 22:38

/*
定义一个int型的一维数组,包含40个元素,用来存储
每个学员的成绩,循环产生40个0~100之间的随机整数,
将它们存储到一维数组中,然后统计成绩低于平均分的学
员的人数,并输出出来
*/
import java.util.Random;
public class HomeWork03{
      public static void main(String[] args){
          int[] score=new int[40];
          int sum=0;
          int average=0;
          //int count=0;
          //循环遍历数组,赋值
          for(int element:score){
               Random random=new Random();
               element=random.nextInt(100);
               System.out.println(element);
               sum+=element; 
               }
           //求平均值
               average=sum/40;
               System.out.println("平均值为:"+average);
           //循环遍历数组,如果分数低于平均值,人数就加1
           int count=0;
           for(int i=0;i<score.length;i++){
           	     if(score[i]<average){
           	     	  count+=1;
           	     } 
           }
            System.out.println("分数低于平均分的人数为:"+count);
      }
}

代码运行结果为count=40,结果明显是错误的,但是找不到原因。

写回答 关注

2回答

  • 慕粉_徐畅
    2017-03-14 22:56:25
    已采纳

     //循环遍历数组,赋值

              for(int element:score){

                   Random random=new Random();

                   element=random.nextInt(100);

                   System.out.println(element);

                   sum+=element; 

                   }

    你这里做循环的时候,只是给总成绩付了值,但是成绩数组却没有赋值,当循环结束的时候数组是空的

    qq_析木_... 回复慕粉_徐畅

    嗯嗯,谢谢,element初始化提醒了我。下面那段代码应该是for循环吧

    2017-03-19 09:04:32

    共 4 条回复 >

  • 慕少1027269
    2017-03-14 22:47:54

    上面循环给数组里的元素赋值有问题,不信你在外面打印一个Arrays.toString(score)看看,元素其实都是0,换成for循环 score[i]这种来赋值就OK

    小光头 回复qq_析木_...

    element是局部变量,for循环结束它的使命也over了

    2017-06-03 20:28:02

    共 2 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1167352 学习 · 18630 问题

查看课程

相似问题