continue 是继续的意思,在循坏中的作用就是跳过本次循还,继续进行循环体的判断语句。担有一点注意的是执行continue语句时,continue后面的语句就不会执行,这可能导致循环无法退出,这是怎样导致的呢? 如下示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if (i == 5)
{
continue; //当i=5时,执行continue语句,直接跳过continue后的语句,
// 不会执行i++语句,变量i 的值停留为5,一直满足while的判断语句
//程序陷入死循环
}
printf("%d ", i);
i++;
}
}
while循环体内当i=5时,执行continue语句,直接跳过continue后的语句, 不会执行i++语句,变量i 的值停留为5,一直满足while的判断语句,程序陷入死循环 。可调整语句i++的位置使程序顺利执行,如下两种示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
while(i++ < 10)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
}
}
算数运算符++(单目运算符)的优先级大于判断 <(关系运算符),故可以用上述代码来实现
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
while(i < 10)
{
i++;
if (i == 5)
{
continue;
}
printf("%d ", i);
}
}