标题几乎涵盖了它。出于某种原因,这个问题正在逃避我,我找不到合乎逻辑的答案。
编辑:
说我有
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循环来完成。
我的教科书是不是想欺骗我教我一些教训?
答案 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++;
}