黑马程序员技术交流社区
标题:
一个很基本的程序
[打印本页]
作者:
二月的雨
时间:
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