在流程控制中,switch、break和continue关键字经常会被用到,这里列举了这三个关键字的用法。
break示例1:
# include
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
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
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
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
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
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;
}