A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 二月的雨 中级黑马   /  2014-12-4 15:17  /  1360 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位高手,刚用eclipse敲的一个代码(是一个例子),但是我在输入1~10,软件就将结果显示出来了,而NUMBER_OF_ELEMENTS = 20;这个怎么解释呢?
import java.util.Scanner;
public class AnalyzeNumbers
{
public static void main(String[] args)
{
  final int NUMBER_OF_ELEMENTS = 20;
  double [] numbers = new double [NUMBER_OF_ELEMENTS];
  double sum = 0;
  Scanner input = new Scanner(System.in);
  
  //求和
  for(int i=0; i<NUMBER_OF_ELEMENTS; i++)
  {
   System.out.print("Enter your new number: ");
   numbers[i] = input.nextDouble();
   sum += numbers[i];
   i++;
  }
  
  //求平均值,并得出大于平均值的个数
  double average = sum / NUMBER_OF_ELEMENTS;
  int count = 0;
  for(int i=0; i<NUMBER_OF_ELEMENTS; i++)
  {
   if(numbers[i] > average)
    count++;
  }
  System.out.println("The sum is "+sum);
  System.out.println("Average is "+average);
  System.out.println("Number of elements above the average is: "+count);
}
}

6 个回复

倒序浏览
//求和
  for(int i=0; i<NUMBER_OF_ELEMENTS; i++//这里)
  {
   System.out.print("Enter your new number: ");
   numbers[i] = input.nextDouble();
   sum += numbers[i];
   i++;//这里
  }
每次循环i都加2,这样数组里有20个位置,你只用了10个

评分

参与人数 1技术分 +1 收起 理由
船长 + 1 船长专业点赞20年!

查看全部评分

回复 使用道具 举报
楼上正解, i++;//重复了。
回复 使用道具 举报
1楼正解!
回复 使用道具 举报
for(int i=0; i<NUMBER_OF_ELEMENTS; i++)
   {
    System.out.print("Enter your new number: ");
    numbers[i] = input.nextDouble();
    sum += numbers[i];
    i++;// 将这行注释掉
   }
问题出在这,循环一次i自加了两次,所以你只能输入10次就结束了。
回复 使用道具 举报
不太明白你的问题,只是大家学习学习,呵呵。NUMBER_OF_ELEMENTS = 20 是自己定义的常量,就像1楼说的,你i++每次都多加了。
回复 使用道具 举报
i++加了2次
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马