使用增强型循环乘以数组的所有值? Java的

时间:2013-03-17 21:06:35

标签: java arrays

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

编辑:

说我有

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 个答案:

答案 0 :(得分:2)

使用增强的for循环无法做到这一点。 假设你有一个数组:(我在OP更新问题后更新了答案,更新在之下)。

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

当你这样做时:

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

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

上例中的

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

阅读 this ,您会看到数组中的值被复制到本地变量,并使用此局部变量。因此,这种乘法不会影响数组的原始值。


OP UPDATE

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

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*...

答案 1 :(得分:0)

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

for (int i = 0; i < array.length; i++) {
  array[i] = array[i] * 2;
}

答案 2 :(得分:0)

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

int result = 1;
for (int element : values)
{
    result *= element;
}

答案 3 :(得分:0)

int index = 0;
for (int element : values)
{

    values[index] = element + someVariable;
    index++;
}