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

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

/*
定义一个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 回答


 //循环遍历数组,赋值

          for(int element:score){

               Random random=new Random();

               element=random.nextInt(100);

               System.out.println(element);

               sum+=element; 

               }

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

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

qq_析木_0 提问者

element=random.nextInt(100);为什么不能这样赋值呢?
2017-03-15 回复 有任何疑惑可以回复我~
#2

慕粉_徐畅 回复 qq_析木_0 提问者

element这个是局部变量,你的for循环每结束一次element这个变量的值就会被初始化,你要将你每一次循环得到的随机数付给score这个数组,这样就好了
2017-03-15 回复 有任何疑惑可以回复我~
#3

慕粉_徐畅 回复 慕粉_徐畅

int y = 0; for(int element:score){ Random random=new Random(); //将获得的随机分数,赋值给原来的数组 score[y]=random.nextInt(100); System.out.println(score[y]); sum+=score[y]; y++; }
2017-03-15 回复 有任何疑惑可以回复我~
#4

qq_析木_0 提问者 回复 慕粉_徐畅

嗯嗯,谢谢,element初始化提醒了我。下面那段代码应该是for循环吧
2017-03-19 回复 有任何疑惑可以回复我~
查看1条回复

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

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

qq_析木_0 提问者

还真都是0,不明白为什么不能这样赋值啊?
2017-03-15 回复 有任何疑惑可以回复我~
#2

小光头 回复 qq_析木_0 提问者

element是局部变量,for循环结束它的使命也over了
2017-06-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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

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

帮助反馈 APP下载

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

公众号

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