我正在进行教科书任务,并且无法理解数组。我正在看一个练习题,很困惑。
声明包含前五个素数的整数数组。
这将是int[]primes = {2,3,5,7,11}
假设数组'primes'已初始化。执行以下循环后它包含什么内容?
for(int i = 0; i < 2; i++)
{
primes[4 - i] = primes[i];
}
教科书为此提供了答案{2,3,5,3,2}
...任何人都可以解释这个循环是如何工作的吗?
答案 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
------------------------
这就是数组如何用于原语。对于物体而不是动物园中的笼子,您只需要一张地图,指向动物园中可以找到动物的地方。任何不在名单上的动物都会被标记并标记到野外,从而释放动物园中的空间。