> 唯美句子 > c语言怎么用switch语句编写四则

c语言怎么用switch语句编写四则

c语言怎么用switch语句编写四则运算?

switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断。下例为用switch语句编写的四则运算:

#include

void main()

{

double N1,N2;

char Operation;

printf("输入运算的两个数");

scanf("%lf%lf",&N1,N2);

printf("请输入运算符(+,-,*,/):");

switch(Operation)

{

case '+':printf("%lf%c%lf=%lf",N1,N2,Operation,N1+N2);

break;

case '-':printf("%lf%c%lf=%lf",N1,N2,Operation,N1-N2);

break;

case '*':printf("%lf%c%lf=%lf",N1,N2,Operation,N1*N2);

break;

case '/':printf("%lf%c%lf=%lf",N1,N2,Operation,N1/N2);

break;

}

}

c语言switch语句的用法问题

case语句是执行到break,跳出switch,一开始n=0,s=0,跳到case 0:空语句,继续执行(没有break),到case 1,执行s+=1,s=1,没有break,继续,s+=2,s=3,有break,跳出switch,所以第一个输出的是3,n=1,s=3,执行s+=3,s=6,没有break,继续,执行s+=4,s=10,没break,继续跳出switch,所以第二个输出10,n=2,s=10,跳到default(不满足上述case,跳到这),执行s+=4,s=14,所以第三个是14,n=3跳出循环,结束

C语言中switch case语句的问题

# include

void main()

{

int I, k, a, b, c, d, e, f,g;

printf("请输入利润I:\n");

scanf("%d", &I);

a = I * (1.0f/10); //此处强制为浮点类型,不然a一直是0,看你的意思了

b = (I - 100000) * 75/1000;

c = (I - 200000) * 5/100;

d = (I - 400000) * 3/100;

e = (I - 600000) * 15/1000;

f = (I - 1000000) * 1/100;

g = (I - 1) / 100000;

switch(g)

{

case 0:

printf("奖金总数k=%d\n", a);

break;

case 1:

printf("奖金总数k=%d\n", a + b);

break;

case 2:

case 3:

printf("奖金总数k=%d\n", a + b + c);

break;

case 4:

case 5:

printf("奖金总数k=%d\n", a + b + c + d);

break;

case 6:

case 7:

case 8:

case 9:

printf("奖金总数k=%d\n", a + b + c + d + e);

break;

default :

printf("奖金总数k=%d\n", a + b + c + d + e + f);

break;

}

望采纳~

c语言switch语句

C语言中,switch语句的使用格式如下:

switch(表达式)

{

case 常量表达式1 : 语句1; break;

case 常量表达式2 : 语句2; break;

......

case 常量表达式n : 语句n; break;

default : 语句n+1;

}

举例如下:

int i=4, a=0;

switch(i)

{

case 1 : a++; break;  // 如果i=1,执行case 1 后面的语句,执行完后退出switch

case 2 : a+=2; break; // 如果i=2,执行case 2 后面的语句,执行完后退出switch

case 4 : a+=4; break; // 如果i=4,执行case 4 后面的语句,执行完后退出switch

default : a=0;  // 如果i不等于上面所以case中的值,执行default后面的语句,执行完后退出switch

}

C语言switch语句例题

首先,你的程序有问题!printf后面没有那个冒号。

#include

int main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1:printf("%d\n",k++);

case 2:printf("%d\n",k++);

case 3:printf("%d\n",k++);

case 4:printf("%d\n",k++);

break;

default:printf("FULL!\n");

}

return 0;

}

/////////////输入1

输出:

1

2

3

4

进入case 1,输出1

k变成2,进入case 2,输出2

k变成3,进入case 3,输出3

k变成4,进入case 4,输出4

遇到break,退出switch。

输入3过程是一样的,只是从case 3开始,输出:

3

4

C语言中的Switch-case语句

switch语句的语法如下(case、default和break是其配套关键字):

switch ( 表达式)

{

case 常量表达式1:

语句1;         可以是多行,可以加括号,也可以不加,到下一个case之前,都是本case的语句范围

[break;]       中括号,表示此语句可以没有

case 常量表达式2:

语句2;

[break;]

……

case 常量表达式n:

语句n;

[break;]

[default:]

语句n+1;

[break;]

}

说明:

*

break  表示退出{ }

*

case后面只能跟一个值(加冒号:),而不能是一个表达式

*

switch(表达式) 后面没有分号(;)

*

{}前后没有分号(;)

*

default语句可以出现在任何位置,但建议写到最后,表示除去case匹配之外的其它情况。也可以没有default语句

switch语句规则:

*

case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。

*

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

*

如果两个case语句间没有break,则执行完匹配的case语句后,会顺序执行下面的语句,直到遇到break语句或switch结束

*

连续的两个case语句表示,这两个case是同一种情况

关于c语言switch语句的用法

凡是使用过的人都会有同样的感觉——C语言的使用灵活这个特点既是优点又是缺点, 因为对精通C语言的用户来讲, 灵活就意味着编程可以无拘无束, 甚至随心所欲; 但对初学者或者是尚未摸着规律的用户来说, 有时候就会觉得C程序设计有点象雾里看花, 摸不着头脑。 因为灵活就意味着没有一个标准。 而实际上,C 语言和其它计算机语言一样, 只要你真正掌握了该语言的每一个语句的特点, 理解、 运用就不难掌握了。 下面就C语言中switch 语句的使用特点谈谈自己的体会。 ---- switch 语句的格式如下: switch( 表达式) {case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式3: 语句3 case 常量表达式n: 语句n default : 语句n+1 } ---- 从表面上看来,switch 语句与PASCAL 语言中的case 语句以及FOXBASE 中的do case 语句非常类似, 只是关键字有所不同: 一个是switch; 而另一个是case 或do case。 但如果仔细阅读过教材或有关参考书的话, 就绝不会有此想法。 从语句的功能上来看,PASCAL 和case 语句或FOXBASE 的do case 语句中的常量表达式是用来与case 后面的表达式比较以确定执行哪一个语句, 一旦执行了某一语句, 则会自动地结束这一case 后的语句; 而C 的switch 语句则不然。 首先,switch 语句中的常量表达式只是起到一个入口作用, 一旦执行了相应的语句后, 只要没有强迫中断语句(break),它就会一直按顺序继续执行下去, 也就是会执行其它case 后面的语句, 直到遇到“}” 符号才停止。 乍看觉得有点不可事议, 但若仔细回味且切身编程体会, 那么就会感司到C的switch 语句的独到之处。 接下来就几个具体例子来剖析:switch 语句的特点以及区别于其它语言中的相应语句的妙处。 ---- 第一个例子: 根据输入的百分制成绩, 然后给出‘A’ ~‘E’ 相应的等级符(90-100 为‘A’、80-89 为‘B’、70-79 为‘B’、60-69 为‘C’、0-59 为‘E’)。主要的处理程序段如下:(temp、score、grade 皆为整型变量) temp=score/10; switch(temp) {case 9:grade=‘A’; case 8:grade=‘B’; case 7:grade=‘C’; case 6:grade=‘D’; case 5:grade=‘E’; } printf(“the grade is %c”,grade); ---- 仔细阅读这段程序( 根据C语言的特点),就会发现有很多错误。 首先, 对100 分和低于50 分的情况没有考虑; 其次,C 语言的switch 特点是顺序执行, 那么这段程序不输入的分数如何, 最后的输出都将是‘E’。因此, 修改这段程序, 可以得到一个正确答案是: temp=score/10; switch(temp) {case 10: case 9:grade=‘A’;break; case 8:grade=‘B’;break; case 7:grade=‘C’;break; case 6:grade=‘D’;break; case 5: case 4: case 3: case 2: case 1: case 0:grade=‘E’; } printf(“the grade is %c,grade”); ---- 但这么一个结果还不算是一个好的C程序, 因为它只是能得到正确的解, 没有真正用到C的特点。 如果将C的特点运用到这段程序中, 则程序将优化成如下: grade=‘A’; temp=score/10; switch(temp) {case 0: case 1: case 2: case 3: case 4: case 5:grade++; case 6:grade++; case 7:grade++; case 8:grade++; case 9: case 10: } printf(“the grade is %c,grade”); ---- 从这段程序中, 我们可以体会到前面所说的该语句的特点。 ---- 第二个例子: 运输公司对用户计算运费。 距离(s) 越远, 每公里运费越低。 具体标准如下: s < 250 (km) 没有折扣 250 < =s < 500 (km) 2% 折扣 500 < =s < 1000 (km) 5% 折扣 1000 < =s < 2000(km) 8% 折扣 2000 < =s < 3000(km) 10% 折扣 3000 < =s (km) 15% 折扣 ---- 设每公里每吨货物的基本运费为p, 货物重为w, 距离为s, 折扣为d, 则总运费计算公式为: ---- f=p*w*s*(1-d) ---- 分析此问题, 折扣的变化是有规律的: 折扣的“ 变化点” 都是250 的倍数(250,500,1000,2000,3000)。利用这一特点, 可以再设一变量c, 它代表250 的倍数。 当c<1 时, 无折扣;1<=c<2 时, 折扣为d=2%;2<=c<4 时,d=5%;4<=c<8 时,d=8%;8<=c=12 时,d=15%。 所以可以有如下没有错误的程序段: scanf(“%f,%f,%d”,&p,&w,&s); if(s>=3000)c=12 else c=s/250 switch(c) {case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6: case 7:d=8;break; case 8: case 9: case 10: case 11:d=10;break; case 12:d=15; } f=p*w*s*(1-d/100.0); printf(“freight%15.f”,f); ---- 如同前一个题目, 这个程序段也完全可以利用switch 特点, 改进优化得到如下程序段: d=0 scanf(“%f,%f,%k”,&p,&w,&s); if(s>=3000)c=12 else c=s/250 switch(c) {case 12:d+=5; case11: case 10: case 9: case 8:d+=2; case 7: case 6: case 5: case 4:d+=3; case 3: case 2:d+=3; case 1:d+=2; case 0: } f=p*w*s*(1-d/100.0); printf(“freight%15.4f”,f); ---- 从上面两个例子分析, 使我们可以比较清楚地看见C语言中switch 语句与其它语言中相应语句的区别。 尽管在学习和教计算机语言的过程中, 我们始终认为语言是相通的, 这样便于学习一门新的语言。 但是真正要把某一门计算机语言学好, 非得掌握它的特点。 ---- 这里仅仅是自己在编程实践过程中的一点体会, 有错误的地方恳请批评指正。 希望对你有帮助!

请问C语言里switch里case里可以有if语句吗?

C语言switch语句的每个case中都可以嵌套使用if语句。

C语言提供的一种用于多分支选择的switch语句, 其一般形式为:

switch(表达式){

case 常量表达式1:  语句1;

case 常量表达式2:  语句2;

case 常量表达式n:  语句n;

default:  语句n+1;

}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

注意事项

*

在case后的各常量表达式的值不能相同,否则会出现错误。

*

在case后,允许有多个语句,可以不用{}括起来。

*

各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

*

default子句可以省略不用。

为了避免程序从对应case一直往下执行,C语言提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。

示例,输入月份和年份,输出该年的该月有多少天:

#include 

int main(void){

int m, y;

printf("input month and year:    ");

scanf("%d%d",&m, &y);

switch (m){

case 1:printf("31\n");  break;

case 2:

if ((y%4==0&&y%100!=0)||y%400==0)printf("29\n");

else printf ("28\n");

break;

case 3:printf("31\n");  break;

case 4:printf("30\n");  break;

case 5:printf("31\n");  break;

case 6:printf("30\n");  break;

case 7:printf("31\n");  break;

case 8:printf("31\n");  break;

case 9:printf("30\n");  break;

case 10:printf("31\n");  break;

case 11:printf("30\n");  break;

case 12:printf("31\n");  break;

default:printf("error\n");

}

return 0;

}

/*

输入:2 2015

输出:28

*/

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语句有何区别

1、break语句和continue语句在switch中都是跳出循环用的。

2、当在switch中执行到break时,立即跳出switch循环,执行switch下面的语句。

3、当在switch中执行到continue时,立即跳出switch本次循环,进入switch下一次循环。

4、例:如果switch预设不中断要执行10次的话,当执行到第6次遇到break则跳出,余下的4次循环也不执行;当执行到第6次遇到continue则跳出第6次循环,执行第7次及以后循环。

例程:

int n=3;

switch(n)

{ case 1: n=n+1;

case 2: n+=2;

case 3: n+=3; //n=3,执行该语句以及下面的语句

case 4: n+=4;

default: n+=1;

}

printf("n=%d",n);

输出结果应是: n=11

int n=3;

switch(n)

{ case 1: n=n+1;break;

case 2: n+=2;break;

case 3: n+=3;break; //只执行该语句,然后跳出switch块

case 4: n+=4;break;

default: n+=1;

}

printf("n=%d",n);

输出结果应是: n=6