AI摘要:本文讨论了C语言中循环和switch结构中的break和continue关键字的使用。通过一个示例代码,解释了在switch中break和continue的不同作用。在switch中,break针对switch结构,而continue针对for循环。文章通过分析示例代码的执行过程,得出了程序的输出结果为11。
Powered by AISummary and MoonShot KimiChat.
事件的起因是同学甩来的一道题,问程序的输出结果
#include<stdio.h>
int main(void){
int i;
for(i=1;i<10;i++){
switch (i%3) {
case 0:
i+=3;
break;
case 1:
i+=4;
continue;
}
i++;
}
printf("%d\n",i);
}
查了一些资料最终也弄明白了这个题,答案是11。
问题的关键在于循环和switch中的break和continue的不同。在switch中是响应break但不响应continue的,换句话说,在switch中使用break,break是针对switch的;而在switch中使用continue,continue是针对for的。
具体到这道题来说,第一次循环所响应的是case 1,i变成5后直接continue,i自增为6后继续循环;此时响应的是case 0,i自增为9后break出switch,执行接下来的语句i++,自增为10;之后在下一次for循环开始时自增为11,不满足i<10条件,跳出for循环。最终输出的i值即为11。
参考资料:
没有评论 T^T