for循环中的整数数组?

时间:2014-11-03 18:35:34

标签: java arrays for-loop

我正在进行教科书任务,并且无法理解数组。我正在看一个练习题,很困惑。

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

  2. 假设数组'primes'已初始化。执行以下循环后它包含什么内容?

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

  3. 教科书为此提供了答案{2,3,5,3,2} ...任何人都可以解释这个循环是如何工作的吗?

5 个答案:

答案 0 :(得分:1)

我假设你理解练习1.对于练习2,循环

for (int i = 0; i < 2; i++)

迭代两次:一次在i = 0,一次在i = 1。在i = 2时,条件i <2被破坏,并且循环不执行。

循环中的实际代码行

primes[4-i] = primes[i];

将数组中的第4个元素设置为等于数组中的第i个元素。

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

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

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

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

答案 1 :(得分:0)

for循环超过两次,因为i = 0且i = 1

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

所以数组中的前3个字段不会改变,只有第4个和第5个

答案 2 :(得分:0)

好像你根本不理解for循环,因为这是一个非常简单的例子。 For循环基本上是代码中的快捷方式,它遍历数据结构。您可以逐行输出for循环,但它们会更长。在这个例子中,

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

变为:

primes[4 - 0] = primes[0];
primes[4 - 1] = primes[1];

所以这个循环所做的就是将数组的最后一个元素设置为第一个元素,将倒数第二个元素设置为第二个元素。

答案 3 :(得分:0)

开始
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}

答案 4 :(得分:0)

想象一下,你有一个动物园(内存),一排笼子(阵列)彼此相邻。每个笼子是保持动物所需的确切大小(数据类型如int

Zoo---------------------
[animal][animal][animal][animal][animal] 
------------------------

您决定使用数字(索引)

标记每个笼子
Zoo---------------------
[animal][animal][animal][animal][animal] 
   0       1       2       3       4
------------------------

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

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

您的动物园管理员会读取第二张索引卡(编号为1)。他制作了熊猫的副本并与虎一起放入笼中。熊猫立刻吃掉了老虎,是笼中唯一的居民。

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

这就是数组如何用于原语。对于物体而不是动物园中的笼子,您只需要一张地图,指向动物园中可以找到动物的地方。任何不在名单上的动物都会被标记并标记到野外,从而释放动物园中的空间。