switch、break与continue的用法

来源:互联网 发布:淘宝可以改会员名吗 编辑:程序博客网 时间:2024/05/29 16:29

一、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;//终止的是第二个switchcase 1:b++;    break;//终止的是第一个switch}b = 100;break;case 2:a++;b++;break;}printf("a = %d, b = %d\n", 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("%d\n",s);return 0;}
输出结果为;



【所有代码均在windows系统下VC++6.0下运行通过】

如有错误,敬请指正

0 0
原创粉丝点击