我正在阅读关于Objective-C的Big Nerd Ranch书,它将带您了解一些早期的C语言。我以前玩过C,并且在PHP方面很有经验。
无论如何,我正在面对挑战,而这个挑战并不像我认为的那样。它非常简单 - 从99开始,循环并减去3直到达到零,每次得到一个可被5整除的数字“找到一个”。非常直截了当。但是,在for循环中减去3不起作用
#include <stdio.h>
int main (int argc, const char * argv[])
{
int i;
for(i = 99; i > 0; i-3){
printf("%d\n", i);
if(i % 5 == 0) {
printf("Found one!\n");
}
}
return 0;
}
它在99处创建无限循环,我不知道为什么。
答案 0 :(得分:4)
i-3
不会修改变量i
。做类似的事情 -
for( i=99; i>0; )
{
// ....
i -= 3;
}
答案 1 :(得分:2)
应该是i-=3
而不是i-3
。
#include <stdio.h>
int main (int argc, const char * argv[])
{
int i;
for(i = 99; i > 0; i-=3){
printf("%d\n", i);
if(i % 5 == 0) {
printf("Found one!\n");
}
}
return 0;
}
i-3
不会更改i
的值。
i-=3
。
答案 2 :(得分:1)
您的循环语句不会修改i
的值。仅仅i - 3
不会更改 i
,它只会返回i - 3
的值。
使用:for(i = 99; i > 0; i = i - 3)
答案 3 :(得分:1)
在for循环中,它应该是i=i-3
。
答案 4 :(得分:1)
您只是从3
中减去i
,但您没有将其分配给i
。
使用i = i - 3
代替i - 3
。
更改您的for语句:
for(i = 99; i > 0; i = i - 3) {
// Write your code here.
}
答案 5 :(得分:0)
For循环中的Last Term是递减操作的增量。虽然i-3
没有。如果您希望i的值减少3,那么您应该将该值存储在i
本身。
为此,请执行以下代码:i = i-3
或速记i-=3
。