Java for循环中的整数数组?

Java for循环中的整数数组?,java,arrays,for-loop,Java,Arrays,For Loop,我正在做一个教科书上的作业,在理解数组方面有困难。我正在看一个练习题,感到困惑 声明包含前五个素数的整数数组。 这将是int[]primes={2,3,5,7,11} 假设数组“primes”已初始化。执行以下循环后,它包含什么 for(int i=0;i

我正在做一个教科书上的作业,在理解数组方面有困难。我正在看一个练习题,感到困惑

  • 声明包含前五个素数的整数数组。 这将是
    int[]primes={2,3,5,7,11}

  • 假设数组“primes”已初始化。执行以下循环后,它包含什么

    for(int i=0;i<2;i++)
    {
    素数[4-i]=素数[i];
    }


  • 教科书给出了这个问题的答案,
    {2,3,5,3,2}
    ,有人能解释一下这个循环是如何工作的吗

    对于i=0和i=1,for循环超出两次

    primes[4-0] = primes[0] = 2 -> primes[4] = 2
    primes[4-1] = primes[1] = 3 -> primes[3] = 3
    

    因此,数组中的前3个字段没有改变,只有第4个和第5个

    似乎您对循环的理解不太清楚,因为这是一个非常简单的示例。For循环基本上是代码中遍历数据结构的快捷方式。你可以一行一行地输入循环,但它们要长得多。在这个例子中

    for (int i = 0; i < 2; i++)
    {
        primes[4 - i] = primes[i];
    }
    
    所以这个循环所做的就是将数组的最后一个元素设置为第一个,将第二个到最后一个元素设置为第二个

    int[]primes = {2,3,5,7,11}
    
    for循环的工作原理如下

    i=0 -> primes[4-0] = primes[0]; //array  {2,3,5,7,2}
    i=1 -> primes[4-1] = primes[1]; //array  {2,3,5,3,2}
    

    我想你理解练习1。对于练习2,循环

    for (int i = 0; i < 2; i++)
    
    将数组中的第4个元素设置为等于数组中的第1个元素

    初始化后,数组素数为{2,3,5,7,11}

    在一个循环之后,数组素数是{2,3,5,7,2}(
    primes[4]=primes[0]
    已经执行)

    在两个循环之后,数组素数是{2,3,5,3,2}(
    primes[3]=primes[1]
    已经执行)

    请记住,数组的索引为零。希望这有帮助。

    想象一下你有一个动物园(记忆),一排笼子(阵列)挨着一排。每个笼子都是容纳动物所需的确切尺寸(数据类型如
    int

    您决定用数字(索引)标记每个框架

    您可以获得一些初始资金,为您的笼子购买动物(初始化阵列)。所以你买了一只斑马、熊猫、猫头鹰、老虎和一只熊,然后把它们放进笼子里。你购买这些动物的顺序就是你把它们放在笼子里的顺序

    Zoo---------------------
    [Zebra][Panda][Owl][Tiger][Bear] 
      0      1      2    3      4
    ------------------------
    
    你们的动物园刚刚完善了克隆技术,所以你们可以复制动物。你决定人们真的很喜欢熊猫和斑马,但不喜欢老虎和熊。您可以通过使用带有指令(循环)的连续索引卡堆栈来委派任务(算法)。每个索引卡的页码从0到小于2,因此最后一张索引卡的页码为1

     _________________________    ___________________________ 
    |0                        |  |1                          |
    |                         |  |                           |
    |                         |  |                           |
    |                         |  |                           |
    |                         |  |                           |
    |_________________________|  |___________________________| 
    
    你喜欢数字4,并且相信它比任何数字都好,应该是计数的起点,而不是数字0。因此,您使用数字4作为参考点给出所有说明

     _____________________________    _____________________________ 
    |0                            |  |1                            |
    |Yo zoo keeper,               |  |Yo zoo keeper,               | 
    |Copy  the animal             |  |Copy  the animal             |
    |in the cage that has this    |  |in the cage that has this    |
    |card number and put it in    |  |card number and put it in    |
    |cage 4 minus this card number|  |cage 4 minus this card number|
    |-The Boss                    |  |-The Boss                    |              
    |_____________________________|  |_____________________________| 
    
    动物园管理员阅读第一张索引卡(编号为0)。他复制了一只斑马,把它和熊放在笼子里。斑马立即吃掉了熊,是笼子里唯一的居民

    Zoo---------------------
    [Zebra][Panda][Owl][Tiger][Zebra] 
      0      1      2    3      4
    ------------------------
    
    Zoo---------------------
    [Zebra][Panda][Owl][Panda][Zebra] 
      0      1      2    3      4             
    ------------------------
    
    动物园管理员阅读第二张索引卡(编号为1)。他复制了一只熊猫,把它和老虎放在笼子里。熊猫立即吃掉了老虎,是笼子里唯一的居民

    Zoo---------------------
    [Zebra][Panda][Owl][Tiger][Zebra] 
      0      1      2    3      4
    ------------------------
    
    Zoo---------------------
    [Zebra][Panda][Owl][Panda][Zebra] 
      0      1      2    3      4             
    ------------------------
    

    这就是数组对基元的工作方式。对于动物园里的物品而不是笼子,你只要有一张地图,指向你可以在动物园里找到动物的地方。任何不在列表中的动物都会被标记为标签,然后被带到野外,从而释放出动物园的空间。

    你到底不明白什么?你的数组有索引号,表示数组中的每个元素,就像街道地址表示房子一样。看看循环:i是索引。应用简单代换法(高中代数)。如果我从0开始,用一个0重写这个等式,然后试着思考你会得到什么。毕竟,在学校学习代数是有意义的。我遵循循环如何产生前2个数字(2,3),但我不理解数组的其余部分是如何产生的(5,3,2)。循环只是改变数组的最后两个元素。它不打印任何内容。它不执行
    2
    ;那将是
    i
    
    Zoo---------------------
    [Zebra][Panda][Owl][Tiger][Zebra] 
      0      1      2    3      4
    ------------------------
    
    Zoo---------------------
    [Zebra][Panda][Owl][Panda][Zebra] 
      0      1      2    3      4             
    ------------------------