你可以在数组的for循环中添加值吗?

时间:2013-04-19 18:04:35

标签: java arrays

我有一个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);
    }

此行int sum += 0 + values[i];

我试图获取所有数组元素值的总和,但我认为它错了。它只打印出实际数字,而不是总和。

8 个答案:

答案 0 :(得分:4)

在for循环之外声明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);
    }

修改:@Orin指出

另外

以零索引

开始循环

答案 1 :(得分:3)

在循环中声明int sum out

    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);
    }

答案 2 :(得分:3)

  1. 数组元素在java中从0开始。因此,您的for也应该以0开头。
  2. 在循环之前声明总和
  3. 在循环之前初始化为0
  4. 循环后打印和。
  5. 更改了程序

    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);
    

答案 3 :(得分: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的值。

此外:

既然你说:

  

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

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

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

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

此外,为了您的信息

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

答案 4 :(得分:2)

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

试试这个:

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);
}

答案 5 :(得分: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);

答案 6 :(得分:1)

首先声明

sum = 0;

并在循环内使用

sum += values[i];

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

答案 7 :(得分: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);