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