-4

标题几乎涵盖了它。出于某种原因,这个问题正在逃避我,我找不到合乎逻辑的答案。

编辑:

说我有

int[] values = (2,5,3,2,1,4,6,3,2,1,5,3)

我想得到所有这些元素的乘积。我的教科书要求使用增强的 for 循环来做到这一点。

for (int element : values)
{
NO CLUE WHAT TO PUT HERE
}

然而,我的第一个猜测是,它无法通过增强的 for 循环来完成。

我的教科书只是想骗我教我一些教训吗?

4

4 回答 4

2

这不能通过增强的 for 循环来完成。假设您有一个数组:(我在 OP 更新问题后更新了答案,更新如下)。

int[] a = {1,2,3};

当你这样做时:

for(int num : a) {
  num = num*something;
} 

您实际上是在乘以另一个变量(数组不会受到影响)..

num在上面的例子中只是一个数组元素的副本。所以实际上你正在修改一个局部变量,而不是数组本身。

阅读本文,您会看到数组中的值被复制到一个局部变量中,并且使用了这个局部变量。所以这个乘法不会影响数组的原始值。


操作更新

如果你想将元素相乘并得到结果,你可以. 你的教科书不是想欺骗你。它不会要求您更改值。但是要使用它们来进行一些计算:

int[] values = {2,5,3,2,1,4,6,3,2,1,5,3};
int result=1;
for(int value : values) {
    result *= value;
} 
System.out.println("The result: " + result); //Will print the result of 2*5*3*2*...
于 2013-03-17T21:21:45.730 回答
1

这可以通过增强的 for 循环轻松完成:

int result = 1;
for (int element : values)
{
    result *= element;
}
于 2013-03-18T02:20:17.140 回答
0

无法做到,您将不得不使用旧式数组寻址:

for (int i = 0; i < array.length; i++) {
  array[i] = array[i] * 2;
}
于 2013-03-17T21:22:50.437 回答
0
int index = 0;
for (int element : values)
{

    values[index] = element + someVariable;
    index++;
}
于 2017-02-07T17:56:47.733 回答