我正在学习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)它创建一个无限循环
请告诉我,该代码有什么问题以及如何修复它。谢谢!
答案 0 :(得分:1)
而不是在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);
您的代码无效的原因:
i%5==0