我有一个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];
我试图获取所有数组元素值的总和,但我认为它错了。它只打印出实际数字,而不是总和。
答案 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)
for
也应该以0开头。更改了程序
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);