循环没有按照预期进行
Loop is not doing what expected
我正在研究 Obj-C,现在我不明白为什么我的循环不能正常工作。我知道我可以通过单个 while
循环获得结果的方法,但我想通过 do while
来实现,但无法弄清楚哪里出了问题。
我想要的是,为整数 5、10、15.. 显示称为 triangularNumber 的整数,依此类推。这是我尝试过的:
for (int i=1; i<51; i++){
int triangularNumber;
do {
triangularNumber = i * (i+1)/2;
NSLog(@"Trianglular number is %i", triangularNumber);
}
while (i%5 == 0);
}
它产生奇怪的结果:
1)不满足i%5==0的条件,输出1,3,6,10然后无穷多个15
2) 它创建一个无限循环
请告诉我,该代码有什么问题以及如何修复它。谢谢!
不要在 for 循环中执行 while 循环,而是使用 if 来检查一个数字是否可以被 5 整除。
如果你想用 do while 循环来做,你可以这样做:
int i = 5;
int triangularNumber;
do {
triangularNumber = i * (i+1)/2;
NSLog(@"Trianglular number is %i", triangularNumber);
i += 5;
} while (i < 51);
您的代码无法正常工作的原因:
- 在你的 do while 循环中,如果我说是 5,那么你将在无限循环中结束 运行 因为你将满足你的 do while 循环的条件,即
i%5==0
- 你只需要 5、10、15 这样的数字.. 所以这只是一个循环的问题。现在循环从 1 开始到 50,从某种意义上说你很挑剔,你只需要 5 中的一个元素,因此为了挑剔你可以使用 if 条件,当且仅当我的 i 是 5 的倍数时打印。
- do while会一直进入循环,执行一次。因此,对于 1,它将输入并计算 triangularNumber 为 1 * 2 /2 = 1,因此您的输出 1 并检查条件 post 打印是 1 可被 5 整除,不,然后它出来并将 i 递增到 2 和遵循与上述相同的程序。
我正在研究 Obj-C,现在我不明白为什么我的循环不能正常工作。我知道我可以通过单个 while
循环获得结果的方法,但我想通过 do while
来实现,但无法弄清楚哪里出了问题。
我想要的是,为整数 5、10、15.. 显示称为 triangularNumber 的整数,依此类推。这是我尝试过的:
for (int i=1; i<51; i++){
int triangularNumber;
do {
triangularNumber = i * (i+1)/2;
NSLog(@"Trianglular number is %i", triangularNumber);
}
while (i%5 == 0);
}
它产生奇怪的结果: 1)不满足i%5==0的条件,输出1,3,6,10然后无穷多个15 2) 它创建一个无限循环
请告诉我,该代码有什么问题以及如何修复它。谢谢!
不要在 for 循环中执行 while 循环,而是使用 if 来检查一个数字是否可以被 5 整除。
如果你想用 do while 循环来做,你可以这样做:
int i = 5;
int triangularNumber;
do {
triangularNumber = i * (i+1)/2;
NSLog(@"Trianglular number is %i", triangularNumber);
i += 5;
} while (i < 51);
您的代码无法正常工作的原因:
- 在你的 do while 循环中,如果我说是 5,那么你将在无限循环中结束 运行 因为你将满足你的 do while 循环的条件,即
i%5==0
- 你只需要 5、10、15 这样的数字.. 所以这只是一个循环的问题。现在循环从 1 开始到 50,从某种意义上说你很挑剔,你只需要 5 中的一个元素,因此为了挑剔你可以使用 if 条件,当且仅当我的 i 是 5 的倍数时打印。
- do while会一直进入循环,执行一次。因此,对于 1,它将输入并计算 triangularNumber 为 1 * 2 /2 = 1,因此您的输出 1 并检查条件 post 打印是 1 可被 5 整除,不,然后它出来并将 i 递增到 2 和遵循与上述相同的程序。