Java 代码执行后数组的值

Java 代码执行后数组的值,java,arrays,Java,Arrays,我必须用执行以下代码后存储的值填充数组: int[] list = {2, 18, 6, -4, 5, 1}; for (int i = 0; i < list.length; i++) { list[i] = list[i] + (list[i] / list[0]); } 对于列表[0],我得到了值3,这是正确的。 对于列表[1],我得到了错误的值27。 对于列表[2],我得到了9,这也是错误的 有人能告诉我我做错了什么吗?数组的长度是6,对吗 list [0] = list

我必须用执行以下代码后存储的值填充数组:

int[] list = {2, 18, 6, -4, 5, 1};
for (int i = 0; i < list.length; i++) {
    list[i] = list[i] + (list[i] / list[0]);
}
对于列表[0],我得到了值3,这是正确的。 对于列表[1],我得到了错误的值27。 对于列表[2],我得到了9,这也是错误的

有人能告诉我我做错了什么吗?数组的长度是6,对吗

list [0] = list[0] + (list[0]/list[0]) = 2 + 2/2 = 3
list [1] = list[1] + (list[1]/list[0]) = 18 + 18/3 = 24
list [2] = list[2] + (list[2]/list[0]) = 6 + 6/3 = 8
list [3] = list[3] + (list[3]/list[0]) = -4 - 4/3 = -5
list [4] = list[4] + (list[4]/list[0]) = 5 + 5/3 = 6
list [5] = list[5] + (list[5]/list[0]) = 1 + 1/3 = 1
您忘记了列表[0]在第一次迭代中从2更改为3,这会影响后续所有迭代的结果

  int[] list = {2,18,6,-4,5,1};
        for ( int i = 0; i<list.Length; i++){
            list [i] = list[i] + (list[i]/list[0]);
            Console.WriteLine(list [i]);
        }
输出: 3. 24 8. -5 6. 一,

第一次迭代后列表[0]=3; 您可以在此处查看我的代码:
代码中没有问题

只需在完成逻辑执行后打印出值

public class ArrayTest {

   public static void main(String[] args) {
       int[] list = { 2, 18, 6, -4, 5, 1 };
       for (int i = 0; i < list.length; i++) {
           list[i] = list[i] + (list[i] / list[0]);
       }

       for (int i = 0; i < list.length; i++) {
           System.out.println(list[i]);
       }
   }
}
答复:

三, 24 8. -5 6.
1

@AlexMontoro不,长度是6,最大索引是518+18/2=27对于列表[1]是正确的。在第一次循环迭代后,列表[0]是3。列表[i]=list[i]+list[i]/list[0];所以对于第二项,它将是18/2+18=27@AnupamBiswas对于列表[0]的原始值,是的,但是,请重新阅读Eran的帖子。根据计算,最后一部分是列表[0],因此它将是第一部分value@AnupamBiswas在第一次迭代之后,列表[0]=3。@AnupamBiswas列表[0]仅在循环的第一次迭代之前等于2。在第一次迭代之后,它等于3。我处于执行模式,所以它的Lil延迟