为什么这些 continue 语句在我的循环中不起作用?
Why aren't these continue statements working in my loops?
我试图将以下 for 循环转换为 while 和 do-while 循环,但由于某种原因,代码在进入实际循环之前就中断了。
这是我要复制的内容:
#include <stdio.h>
int main(void)
{ int y;
for (y=1;y<10; y++)
{ if (y == 5)
continue;
printf("%2d", y);
}
printf("\ny=%2d\n",y);
return 0;
}
以下是我尝试制作等效的 while 和 do-while 循环的尝试:
#include <stdio.h>
int main(void)
{
int y;
y = 1;
while(y < 10) // here's my while loop
{
if(y == 5)
continue;
printf("%2d", y);
y++;
}
printf("\ny=%2d\n",y);
/********************
... and my do-while
********************/
y = 1;
do
{
if (y == 5)
continue;
printf("%2d", y);
y++;
} while(y < 10);
printf("\ny=%2d\n",y);
return 0;
}
我哪里错了?
如果在您的代码中满足条件,则不会递增变量,因此您会陷入无限循环。尝试
#include <stdio.h>
int main(void)
{
int y;
y = 0;
while(++y < 10) // here's my while loop
{
if(y == 5)
continue;
printf("%2d", y);
}
printf("\ny=%2d\n",y);
之类的。
在 for
循环中,continue
跳转到 for
语句的第三个表达式,这会使计数器递增。
在 while
循环中,continue
立即跳转到下一次迭代,跳过增量。
我试图将以下 for 循环转换为 while 和 do-while 循环,但由于某种原因,代码在进入实际循环之前就中断了。
这是我要复制的内容:
#include <stdio.h>
int main(void)
{ int y;
for (y=1;y<10; y++)
{ if (y == 5)
continue;
printf("%2d", y);
}
printf("\ny=%2d\n",y);
return 0;
}
以下是我尝试制作等效的 while 和 do-while 循环的尝试:
#include <stdio.h>
int main(void)
{
int y;
y = 1;
while(y < 10) // here's my while loop
{
if(y == 5)
continue;
printf("%2d", y);
y++;
}
printf("\ny=%2d\n",y);
/********************
... and my do-while
********************/
y = 1;
do
{
if (y == 5)
continue;
printf("%2d", y);
y++;
} while(y < 10);
printf("\ny=%2d\n",y);
return 0;
}
我哪里错了?
如果在您的代码中满足条件,则不会递增变量,因此您会陷入无限循环。尝试
#include <stdio.h>
int main(void)
{
int y;
y = 0;
while(++y < 10) // here's my while loop
{
if(y == 5)
continue;
printf("%2d", y);
}
printf("\ny=%2d\n",y);
之类的。
在 for
循环中,continue
跳转到 for
语句的第三个表达式,这会使计数器递增。
在 while
循环中,continue
立即跳转到下一次迭代,跳过增量。