本文目录
- C语言里的switch语句怎么用,最好有例子哈
- c语言switch函数
- c语言 switch的用法
- c语言switch case语句例子有哪些
- 给一个关于C语言中switch应用的例子,我弄清楚不那个表达式(记住:要具体的例子)
- C语言switch的解析
- 有关C语言 switch语句的例题讲解
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