黑马程序员技术交流社区

标题: 一个很基本的程序 [打印本页]

作者: 二月的雨    时间: 2014-12-4 15:17
标题: 一个很基本的程序
各位高手,刚用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);
}
}

作者: Mr.Ni    时间: 2014-12-4 15:48
//求和
  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个
作者: quick3g    时间: 2014-12-4 16:42
楼上正解, i++;//重复了。
作者: boycechan    时间: 2014-12-4 16:57
1楼正解!
作者: lwh316658735    时间: 2014-12-4 18:28
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次就结束了。
作者: ben_vs_cong    时间: 2014-12-4 19:09
不太明白你的问题,只是大家学习学习,呵呵。NUMBER_OF_ELEMENTS = 20 是自己定义的常量,就像1楼说的,你i++每次都多加了。
作者: zmhlnrs    时间: 2014-12-4 22:59
i++加了2次




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2