上代码
int main(void)
{
int a = 3;
while (a > 0) {
do {
a--;
continue;
printf("test continue\n");
} while (0)
printf("test loop\n");
}
printf("test over");
return 0;
}
上述代码很简单, 那么请问执行后的结果是什么?
自己动手验哈。。。
So, 是不是很简单,但编码一不小心也是容易犯错的
要点,切记
continue只是结束本次循环
do...while(0)虽然单次循环,也是while的特殊用法,continue在while语句中的作用就是结束本次循环。因此,上述代码中执行到continue时,结束do...while(0),即结束本次循环,在do...while(0)外层继续往下执行。
答案解释
按照上述解释,代码运行结果是:
1. 执行到do...while(0) 的continue时,结束本次循环。因此,在do...while(0)中的continue后面的不会再执行;
2. 结束do...while(0),往下继续执行printf("test loop\n")。while语句中执行了3遍相同的逻辑。
网友评论