您的位置:首页 > 其它

switch语句

2016-07-15 22:12 204 查看

一、语句格式

switch(表达式)

{

sase 常量表达式1:

语句序列1;

break;

sase 常量表达式2:

语句序列2;

break;

sase 常量表达式n:

语句序列n;

break;



default:

语句序列 n+1;

}

该语句中可以使用一个或多个case标号,但只能用一次default标号,或省略整个default部分;多个case标号也允许使用在同一个语句序列的前面;每个语句标号由保留字case和后面的常量表达式及冒号组成,每个常量表达式通常为字面常量,如常数或字符。

二、 语句执行过程

switch语句执行过程由以下3步描述。

(1)计算出switch后面圆括号内表达式的值,假定为m,若它不是整型,系统将自动去除其小数部分,值取其证书部分作为结果值。

(2)依次计算每一个常量表达式的值,假定为m1,m2,……,同样,若它们的值不是整型,则自动转换为整型。

(3)让m依次同m1,m2,……进行比较,一旦遇到m与某个值相等,则就从对应标号的语句开始执行;在碰到不相等的情况下,若存在default语句,则就执行其冒号后面的语句序列,否则不执行任何操作。当执行到复合语句的右花括号时,就结束整个stitch语句的执行。

三、语句格举例

(1)两种书写格式是等价的

switch(a)

{

case 1:x++;break;

case 2:y++;break;

case 3:z++;break;

default:cout<<”error”;

}

switch(a)

{

case 1:

x++;break;

case 2:

y++;break;

case 3:

z++;break;

default:

cout<<”error”;

}

(2)

switch(ch)

{

case’a’:

case’A’:

d1=(x+y)/2;

d2=x*y-2;

break

case’b’:

case’B’:

d1=(a+b)/2;

d2=a*b-2;

break;

default:

cout<<”input error”;

}

说明:1.每个case后面的语句可以写在冒号后的同一行或换到新行写。

2.<语句序列1>…<语句序列n+1>都是一组语句,有时可为空。

四、例题

例1

根据从键盘上输入的表示星期几的数字,对应输出它们的英文名称。

源代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int weekday;
scanf("%d",&weekday);
switch(weekday)
{
case 1: printf("Monday\n") ;break;
case 2: printf("Tuesday\n"); break;
case 3: printf("Wednesday\n"); break;
case 4: printf("Thursday\n"); break;
case 5: printf("Friday\n"); break;
case 6: printf("Saturday\n"); break;
case 7: printf("Sunday\n"); break;
default: printf("Input error!\n");
}
system("pause");
return 0;
}


例2

判断2006年每个月份的天数。

源代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int month,day;
scanf("%d",&month);
switch(month)
{
case 2: day=28; break;
case 4: day=30; break;
case 6: day=30; break;
case 9: day=30; break;
case 11: day=30;break;
default: day=31; break;
}
printf("%d\n",day);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  switch语句