概述
一、switch语句
switch语句格式:
{
case常量表达式1:语句1;
case常量表达式2:语句2;
…
case常量表达式n:语句n;
default :语句n+1;
}
需要注意的是:
(一)所有case后面的表达式这能是这几种情况:1、枚举常量(有些书称为枚举元素) 2、数值常量 3、字符常量 4、常变量(只能被赋一个值的变量) 5、宏
(二)switch后面括号里的“表达式”允许是任何类型(但在VC++中只允许为int或char类型)。
(三)执行完一个case语句后,流程控制就转移到下一个case语句继续执行(case常量表达式只是起语句标号的作用,并不是在该处进行条件判断。在执行switch语句时,根据switch()中表达式的值找到与之匹配的case语句,就从此case语句开始执行下去,不再进行判断)
例如:
switch (i)
{
case 1: 语句1;
case 2: 语句2;
default: 语句3;
case : 语句4;
}
说明: 当i==1时,从case 1处开始往下一个不落的往下执行,当i==2时,从case 2处开始往下一个不落的往下执行,当i==3时,只执行case 3的语句,当i不等于1,2,3时,会执行defaulr 语句。
(四)switch是选择不是循环。如果在switch中出现了break 语句,该语句的功能只是退出switch语句转去执行它下面的语句。在switch中出现continue 是错误的,除非switch本身就属于for或while循环的一部分。
例1.1:
# include <stdio.h>
int main(void)
{
int val;
printf("请输入您要进入的楼层:");
scanf("%d", &val);
switch (val)
{
case 1:
printf("这是一楼!n");
break;
case 2:
printf("这是二楼!n");
break;
case 3:
printf("这是三楼!n");
break;
default:
printf("没有盖到这一层!n");
break;
}
return 0;
}
你输入1,会输出“这是一楼!”,输入2、3回分别输出“这是二楼!”、“这是三楼!”,当你输入的不是1或2或3时,会输出“没有这个楼层!”。
二、break 语句
break的用法
break如果用于循环是用来终止循环
break如果用于switch,则是用于终止switch
break不能直接用于if,除非if属于循环内部的一个字句
例2.1:
# include <stdio.h>
int main(void)
{
switch (1)
{
case 1:
printf("今天天气不好!n");
break; //这里break可以用
printf("真的不好!n");//这个语句不会执行,因为上面的break已经将switch终止
}
return 0;
}
输出结果为:
例2.2:
# include <stdio.h>
int main(void)
{
int i;
for (i=0; i<3; ++i)
{
if (3 > 2)
break; //break虽然是if内部的语句,但它终止的却是外部的for循环!!!
printf("真的不好!n"); //该语句不会被输出
}
return 0;
}
输出结果为:
例2.3:
# include <stdio.h>
int main()
{
int x = 1, y = 0, a = 0, b = 0;
switch(x) //第一个switch
{
case 1:
switch(y) //第二个switch
{
case 0:
a++;
break;//终止的是第二个switch
case 1:
b++;
break;//终止的是第一个switch
}
b = 100;
break;
case 2:
a++;
b++;
break;
}
printf("a = %d, b = %dn", a, b);
return 0;
}
输出结果为:
例2,4:
# include <stdio.h>
int main()
{
int i, j;
<span style="white-space:pre"> </span>for (i=0; i<3; ++i)
{
for (j=1; j<4; ++j)
<span style="white-space:pre"> </span>break; // 在多层循环中,<style type="text/css">P { margin-bottom: 0.21cm; direction: ltr; color: rgb(0, 0, 0); text-align: justify; }P.western { font-family: "Times New Roman",serif; font-size: 10pt; }P.cjk { font-family: "宋体"; font-size: 10pt; }P.ctl { font-family: "Times New Roman",serif; font-size: 10pt; }break只能终止最里面包裹它的那个循环</style>break只能终止最里面包裹它的那个循环
printf("任重而道远!n");
}
return 0;
}
输出结果为:
三、continue 语句
continue的用法
1、
for (1; 2; 3)
{
A;
B;
continue;//如果执行continue语句,则执行完该语句后,会执行语句3,C、D会被跳过去,不会被执行
C;
D;
}
2、
while (表达式)
{
A;
B;
continue;//如果执行continue语句,则执行完该语句后,会执行表达式,C、D会被跳过去,不会被执行
C;
D;
}
例3.1:
# include <stdio.h>
int main()
{
int i;
i = 0;
while (i < 3)
{
printf("城关东边和南边的人比较多!n");
printf("城里人相对较少!n");
i++;
continue;//执行完continue语句后,下面的语句(12行语句)不会被执行
printf("天还算可以!n");//12行
}
return 0;
}
输出结果为:
例3.2:
# include <stdio.h>
int main()
{
int i;
i = 0;
for (i=1; i<3; ++i)
{
printf("城关东边和南边的人比较多!n");
printf("城里人相对较少!n");
continue;//执行完continue语句后,下面的语句(11行语句)不会被执行
printf("天还算可以!n");//11行
}
return 0;
}
输出结果为:
例3.3:
# include <stdio.h>
int main(void)
{
int i = 0, s = 0;
do
{
if (i%2)
{
i++;
continue;//执行完该语句会跳到14行
}
i++;
s+=i;
} while(i < 5);//14行
printf("%dn",s);
return 0;
}
输出结果为;
【所有代码均在windows系统下VC++6.0下运行通过】
(如有错误,敬请指正)
最后
以上就是俊逸板栗为你收集整理的switch、break与continue的用法的全部内容,希望文章能够帮你解决switch、break与continue的用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复