×

c语言switch函数例子 c switch语句

c语言switch函数例子(C语言里的switch语句怎么用,最好有例子哈)

admin admin 发表于2022-09-04 04:18:19 浏览227 评论0

抢沙发发表评论

本文目录

C语言里的switch语句怎么用,最好有例子哈


switch(表达式){ 
    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    … 
    case 常量表达式n:  语句n;
    default:  语句n+1;
}
//例子:
int choice;
scanf(“%d“, &choice);
switch(choice)
{
    case 0: operation0(); break;
    case 1: operation1(); break;
    default: operation_default();
}

c语言switch函数


简单的说switch语句也是属于判断语句,if else语句适合3个以内的判断,但是多了用if就不太方便了,所以这时3个以上的判断用switch语句就比较方便了,结构就像楼上的兄弟们那样写的,大概怎么用我举个例子你就懂了。例:判断一周的食谱,就是星期几的食谱是什么,首先一个星期7天,那么判断七次,用switch语句写法如下: #include void main() { int a;//定义变量用于开辟1到7的数字即一星期的天数。 printf(“看看星期几的食谱是什么?“); scanf(“%d“,&a); switch(a)//开始判断1-7的食谱。 { case 1:printf(“星期一吃水果\n“); break;//结束语句,判断这天后提示完就不执行下面的语句了,否则逻辑错误。 case 2:printf(“星期二吃蔬菜\n“); break; case 3:printf(“星期三吃火锅\n“); break; case 4:printf(“星期四吃米饭\n“); break; case 5:printf(“星期五吃西餐\n“); break; case 6:printf(“星期六吃米饭\n“); break; case 7:printf(“星期天吃满汉全席\n“); break; default:printf(“请输入正确的日期\n“);//default语句类似else,如果不输入1到7的正确日期就显示这个语句。 break; } }

c语言 switch的用法


switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。

C语言程序语句switch语句的语法如下(switch,case和default是关键字):

switch ( controllingExpression )

{

case constantExpression1 :

case constantExpression2 :

case constantExpression3 :

statements; 

//当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements

break;

case constantExpression :

statements ;

break;

...

default :

statements ;

break;

}

扩展资料:

Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。

遵守switch语句规则

switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

switch()的参数类型不能为实型 。

case标签必须是常量表达式(constantExpression),如42或者’4’。

case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

参考资料来源:百度百科-switch (计算机语言关键字)


c语言switch case语句例子有哪些


switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型。-switch语句

switch可以任意个case语句(包括没有), 值和语句之间使用:分隔。

case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过。

当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块。

break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出。

switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句。


给一个关于C语言中switch应用的例子,我弄清楚不那个表达式(记住:要具体的例子)


switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;

case常量表达式n: 语句n;
default : 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后
的语句。
【例】
main(){
int a;
printf(“input integer number: “);
scanf(“%d“,&a);
switch (a){
case 1:printf(“Monday\n“);
case 2:printf(“Tuesday\n“);
case 3:printf(“Wednesday\n“);
case 4:printf(“Thursday\n“);
case 5:printf(“Friday\n“);
case 6:printf(“Saturday\n“);
case 7:printf(“Sunday\n“);
default:printf(“error\n“);
}
}

本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
【例】
main(){
int a;
printf(“input integer number: “);
scanf(“%d“,&a);
switch (a){
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(“error\n“);
}
}

在使用switch语句时还应注意以下几点:
1) 在case后的各常量表达式的值不能相同,否则会出现错误。
2) 在case后,允许有多个语句,可以不用{}括起来。
3) 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4) default子句可以省略不用。
-c

C语言switch的解析


我们处理多个分支时需使用if-else-if结构,但如果分支较多,嵌套的if语句层就越多,程序庞大而且理解也比较困难.因此,C语言又提供了一个专门用于处理多分支结构的条件选择语句,称为switch语句,又称开关语句.使用switch语句直接处理多个分支(当然包括两个分支).
其一般形式为:
switch(表达式)
{

case
常量表达式1:

语句1;

break;
case
常量表达式2:

语句2;

break;
……

case
常量表达式n:

语句n;

break;
default:

语句n+1;

(break;)
}
执行流程:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较(也可以是数字)
若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;
若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,
如下程序,可以根据输入的考试成绩的等级,输出百分制分数段:
引用
switch(grade)
{

case
’A’:
/*注意,这里是冒号:并不是分号;*/

printf(“85-100\n“);

break;
/*每一个case语句后都要跟一个break用来退出switch语句*/

case
’B’:
/*每一个case后的常量表达式必须是不同的值以保证分支的唯一性*/

printf(“70-84\n“);

break;

case
’C’:

printf(“60-69\n“);

break;

case
’D’:

printf(“《60\n“);

break;

default:

printf(“error!\n“);
}
(2)
如果在case后面包含多条执行语句时,也不需要像if语句那样加大括号,进入某个case后,会自动顺序执行本case后面的所有执行语句.如:
引用
{

case
’A’:

if(grade《=100)

printf(“85-100\n“);

else

printf(“error\n“);

break;
……
(3)
default总是放在最后,这时default后不需要break语句.
并且,default部分也不是必须的,当switch后面圆括号中表达式的值与所有case后面的常量表达式的值都不相等时,则不执行任何一个分支直接退出switch语句.
例如,将上面例子中switch语句中的default部分去掉,则当输入的字符不是“A“,“B“,“C“或“D“时,此switch语句中的任何一条语句也不被执行.
(4)
在switch-case语句中,多个case可以共用一条执行语句,如:
引用
……
case
’A’:
case
’B’:
case
’c’:
printf(“》60\n“);
break;
……
在A,B,C3种情况下,均执行相同的语句,即输出“》60“.
(5)
最开始那个例子中,如果把每个case后的break删除掉,则当greak=’A’时,程序从printf(“85-100\n“)开始执行,输出结果为:
引用
85-100
70-84
60-69
《60
error
这是因为case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号“.
执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不在判断是否与之匹配,直到遇到break语句才停止执行,退出break语句.
引用
main()
/*完成两个数简单的四则运算*/
{

float
a,b;

char
c1;

printf(“Please
enter
a,b
and
op:“);

scanf(“%f%c%f“,&a,&c1,&b);

switch(c1)

{

case
’+’:

printf(“%f+%f=%f\n“,a,b,a+b);

break;

case
’-’:

printf(“%f-%f=%f\n“,a,b,a-b);

break;

case
’*’:

printf(“%f*%f=%f\n“,a,b,a*b);

break;

case
’/’:

if(b!=0.0)
/*分母不能等于0*/

printf(“%f/%f=%f\n“,a,b,a/b);

else

printf(“error!\n“);

break;

default:

printf(“error!\n“);

break;

}
}
-switch语句

有关C语言 switch语句的例题讲解


格式太 不好了,我给你弄了下很清楚明显了,希望以后一定要注意格式,这样不仅美观,而且对找问题很有帮组:
void main()
{
int a=2,b=7,c=5;
switch(a》0)
{
case 1:
switch(b《0) //b明显大于0,所以这里的判断b《0得到的结果明显为假,也就是0,而下面的case里面只有1,2所以都不满足
{
case 1:printf(“@“);break;
case 2:printf(“!“);break;
//上面2个条件都不满足,而后面又没有break等,所以顺序执行下面的语句
}
case 0: //也就是到这里来了
switch(c==5) //c明显等于5,所以这里得到的结果真,也就是1
{
case 0:printf(“*“);break;
case 1:printf(“#“);break; //满足这个条件,然后打印“#”,并break推出
case 2:printf(“$“);break;
}
default:printf(“&“);
}
printf(“\n“);
}
-c