在流程控制中,switch、break和continue关键字经常会被用到,这里列举了这三个关键字的用法。
break示例1:
# include <stdio.h> int main(void) { int i; for (i=0;i<3;++i) { if (3>2) break; //此处break用于终止 for循环语句,而不是if语句。下面的printf语句不会再执行,输出为空。 printf("哈哈!\n"); } return 0; }
break示例2:
# include <stdio.h> int main(void) { int i, j; for (i=0; i<3; ++i) { for (j=1; j<4; ++j) break; //输出结果为三个“呵呵!”,break只能终止离它最近的一个循环。 printf("呵呵!\n"); } return 0; }
switch示例:
# include <stdio.h> int main(void) { int i; printf("请输入您要到的楼层数:"); scanf("%d", &i); switch (i) { case 1: printf("电梯将在1层开!\n"); break; case 2: printf("电梯将在2层开!\n"); break; case 3: printf("电梯将在3层开!\n"); break; case 4: printf("电梯将在4层开!\n"); break; case 5: printf("电梯将在5层开!\n"); break; case 6: printf("电梯将在6层开!\n"); break; case 7: printf("电梯将在7层开!\n"); break; case 8: printf("电梯将在8层开!\n"); break; default: printf("对不起,还没有盖到这一层!\n"); } /* 字符的连接: printf("电梯将在"); printf("%d", i); printf("层开!\n"); */ return 0; }
continue示例:
# include <stdio.h> int main(void) { int i, j; for (i=0; i<3; i++) { A; B; continue; //continue会将本次循环余下语句C;D;跳过,去执行i++。 C; D; } j = 0 while (j<3) { A; B; j++; //更新部分j++不会被跳过,否则将成为死循环。 continue; //continue会将本次循环余下语句C;D;跳过,去执行i++。 C; D; } return 0; }
switch与break示例:
# include <stdio.h> int main(void) { int x = 1; int y = 0; int a = 0; int b = 0; switch (x) //第一个switch { case 1: switch (y) //第二个switch { case 0: a++; break; //此处break终止的是离它最近的switch,即第二个switch,输出结果为a = 1 b = 100;
//若终止的是第一个switch,则会输出a = 1 b = 0; case 1: b++; break; } b = 100; break; case 2: a++; b++; break; } printf("a = %d b = %d\n", a, b); return 0; }
使用conitnue对非法输入进行处理:
# include <stdio.h> int main(void) { int i, j; char ch; printf("请输入i的值:"); scanf("%d", &i); printf("i = %d\n", i); while ((ch=getchar()) != '\n') //对i后的非法字符进行处理。 getchar()是取字符函数,'\n'即是回车。 continue; printf("请输入j的值:"); scanf("%d", &j); printf("j = %d\n", j); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-20 19:11:55