-1

我有一个循环遍历整数数组的 for 循环。我试图得到数组中所有元素的总和。我可以循环执行此操作吗?

下面的代码:

    int numOfValues;

    //prompt user for number of values
    System.out.print("How many values? ");
    numOfValues = input.nextInt();

    int[] values = new int[numOfValues];        

    for(int i=1; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
        int sum += 0 + values[i];
        System.out.print(sum);
    }

这行 intsum += 0 + values[i];

是我试图让所有数组元素值总计的地方,但我认为它是错误的。它只是打印出实际数字而不是总和。

4

8 回答 8

4

int sum在 for 循环之外声明

IE

 int sum =0;  
for(int i=0; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
         sum += values[i];
        System.out.print(sum);
    }

编辑:正如所@Orin指出的

以零索引开始 for 循环

于 2013-04-19T18:05:41.677 回答
3

在循环外声明 int sum

    int sum =0;  
for(int i=0; i<numOfValues;i++)
    {

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
         sum += values[i];
        System.out.print(sum);
    }
于 2013-04-19T18:06:57.397 回答
3
  1. java中数组元素从0开始。所以你for也应该从 0 开始。
  2. 在循环之前声明 sum
  3. 在循环之前将总和初始化为 0
  4. 循环后打印总和。

改变程序

int numOfValues;

//prompt user for number of values
System.out.print("How many values? ");
numOfValues = input.nextInt();

int[] values = new int[numOfValues];        

int sum = 0;
for(int i=0; i<numOfValues;i++)
{

    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
    sum += values[i];
}

System.out.print(sum);
于 2013-04-19T18:07:45.043 回答
3

怎么修:

sum变量放在循环之外

int sum = 0
for(int i = 1; i < numOfValues; i++)
{

        System.out.print("Value " + i + " :");
        values[i] = input.nextInt(); 
        sum += values[i];
        System.out.print(sum);
}

原因:

sum 的值不会被存储,因为您每次循环迭代时都定义了变量。您只需要定义一次并不断为sum's 的值添​​加值。

而且:

既然你说:

我正在尝试获取数组中所有元素的总和

要遍历数组中的所有元素,您需要从起始索引开始迭代。数组的起始索引0 不是 1。所以,你需要改变这个:

for(int i = 1; i < numOfValues; i++)

for(int i = 0; i < numOfValues; i++)

此外,供您参考

sum += values[i];相当于sum = sum + values[i];

于 2013-04-19T18:07:57.813 回答
2

您的变量 sum 始终为数组的每个循环初始化:

尝试这个:

int sum =0;  
for(int i=1; i<numOfValues;i++)
{

    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
     sum += values[i];
    System.out.print(sum);
}
于 2013-04-19T18:08:53.363 回答
1

先声明

sum = 0;

并在循环内使用

sum += values[i];

还要记住,数组从零开始。祝你好运。

于 2013-04-19T19:02:46.300 回答
1
int sum = 0;
for(int i=0; i<numOfValues;i++)
{
    System.out.print("Value " + i + " :");
    values[i] = input.nextInt(); 
    sum += values[i];
 }
 System.out.print(sum);
于 2013-04-19T18:07:28.623 回答
0

你能试试这个方法吗

   System.out.print("How many values? ");
   numOfValues = input.nextInt();
   int[] values = new int[numOfValues];        
   int sum = 0;
   for(int i=0; i<numOfValues;i++)
   {
       System.out.print("Value " + i + " :");
       values[i] = input.nextInt(); 
       sum += values[i];
   }
   System.out.print(sum);
于 2013-04-19T18:11:24.290 回答