文档库 最新最全的文档下载
当前位置:文档库 › switch语句练习

switch语句练习

switch语句练习
switch语句练习

1、编写电信客服服务调查反馈信息:

如果

输入0:不满意

输入1:十分满意

输入2:满意

输入3:基本满意

输入其他:我要投诉!

2、根据存款利率计算表,计算所存钱的利率

注意:假定存钱变量为x,要求从键盘输入其值并选择存款方式,计算存款利率并输出显示。

利率计算:

(1)3个月 3.10%,

(2)6个月3.30%

(3)一年 3.50%

(4)二年 4.40%

(5)三年 5.00%

(6)五年 5.50%

(7)其他:输入错误。

3、自行创建一个菜单选择项,输入选项,输出结果。

4、从键盘上输入一个百分制成绩score,

输出成绩评定等级:

90以上:优秀

80~90:良好

70~80:中等

60~70:及格

60以下:不及格

5、编一程序,要求实现下面的功能:输入一个实数后,屏幕上显示如下菜单(加粗部分):

**************************

1.输出相反数

2.输出平方数

3.输出平方根

4.退出

***********************

输入相应选项,输出结果

5、要将“China”翻译成密码。密码规律是:用原来字母的后面第4个字母代替原来的字母。请编写一程序实现。并输出结果。

6、输入一个不大于255的自然数x,计算y=(1+x)/x2。

7、给定一个三位正整数,分别输出它的个位数、十位数和百位数。

8、输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。

C>40时,打印“Hot”

30

20

10

0

C≤0时,打印“Freezing”

switch用法

C语言switch语句的用法详解 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){

switch语句练习

1、编写电信客服服务调查反馈信息: 如果 输入0:不满意 输入1:十分满意 输入2:满意 输入3:基本满意 输入其他:我要投诉! 2、根据存款利率计算表,计算所存钱的利率 注意:假定存钱变量为x,要求从键盘输入其值并选择存款方式,计算存款利率并输出显示。 利率计算: (1)3个月 3.10%, (2)6个月3.30% (3)一年 3.50% (4)二年 4.40% (5)三年 5.00% (6)五年 5.50% (7)其他:输入错误。 3、自行创建一个菜单选择项,输入选项,输出结果。 4、从键盘上输入一个百分制成绩score, 输出成绩评定等级: 90以上:优秀 80~90:良好 70~80:中等 60~70:及格 60以下:不及格 5、编一程序,要求实现下面的功能:输入一个实数后,屏幕上显示如下菜单(加粗部分): ************************** 1.输出相反数 2.输出平方数 3.输出平方根 4.退出 *********************** 输入相应选项,输出结果 5、要将“China”翻译成密码。密码规律是:用原来字母的后面第4个字母代替原来的字母。请编写一程序实现。并输出结果。 6、输入一个不大于255的自然数x,计算y=(1+x)/x2。 7、给定一个三位正整数,分别输出它的个位数、十位数和百位数。 8、输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。 C>40时,打印“Hot” 30

switch case用法示例

C语言——switch case语句 switch语句的语法如下(switch,case和default是关键字): switch ( 表达式) { case 常量表达式1 :语句1;break; case 常量表达式2 :语句2;break; …… case 常量表达式n :语句n;break; default:语句n+1;break; } 说明: break退出{ } case后面只能跟一个值(加冒号:),而不能是一个表达式 switch(表达式) 后面没有;(分号) { }前后没有;(分号) switch语句规则 case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。 case 标签后不能是浮点型数据(如1.0 ) case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。 不要问为什么,C就这规定!我们只需要了解规则,学会应用即可! 猜想原因:浮点型数据不是准确的数据,在机器中只能表示出一个近似值,如:0.1 在机器中存的是0.09999612.... 也可能是0.09999723.... 根据精度不同,数据来源不同,其值是个不确定的数据,因此,不能用CASE来定位 简单例题1:

#include void main(void) { int i=5; switch(i) { case 1: printf("%d",i); break; case 2+3: printf("%d",3); break; default : printf("%d",i); } } //程序运行效果是输出:3 经典例题2: #include void main(void) { switch('A') { case 'A': printf("A\n"); break; case 'B': printf("%d",3); break; default : printf("%d",7); } } //程序运行效果是输出:A 经典例题3: #include void main(void) { int i=5; switch(5) {

C语言选择题

一、多项选择共31题(共计310分) 第1题(10.0分)题号:4 以下选项中,合法的字符常量是()。 A:'\t' B:'\17' C:"n" D:'\xaa' 答案:ABD 第2题(10.0分)题号:3 以下用户标识符,其中合法的是()。 A:return B:f2_G3 C:A3-3 D:abc 答案:BD 第3题(10.0分)题号:14 以下可以定义为用户标识符的有()。 A:scanf B:short C:_3com_ D:int 答案:AC 第4题(10.0分)题号:8 以下选项中合法的表达式是()。 A:0<=x<100 B:i=j==0 C:(char)(65+3) D:x+1=x+1 答案:ABC 第5题(10.0分)题号:10 以下不符合C语言语法的实型常量是()。 A:1.2E0.5 B:3.14.159E C:.5E-3 D:E15 答案:ABD 第6题(10.0分)题号:5 以下叙述中正确的是()。 A:一个C源程序可由一个或多个函数组成 B:一个C源程序必须包含一个main()函数 C:C源程序的基本组成单位是函数 D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC

第7题(10.0分)题号:20 以下正确的if语句形式是()。 A:if (x>y && x!=y); B:if (x==y) x+=y; C:if (x!=y) scanf("%d",&x) else scanf("%d",&y); D:if (x0); D:if(b==0) m=1;n=2; 答案:ABC 第12题(10.0分)题号:6 设有以下定义 int a=0; double b=1.25; char c='A'; #define d 2 则下面语句中正确的是()。 A:a++;

第8课语句(4)-开关语句

第八课语句(4)-开关语句 我们学习了条件语句,用多个条件语句可以实现多方向条件分支,但是可以发现使用过多的条件语句实现多方向分支会使条件语句嵌套过多,程序冗长,这样读起来也很不好读。这时使用开关语句同样可以达到处理多分支选择的目的,又可以使程序结构清晰。它的语法为下: switch (表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式3: 语句3; break; case 常量表达式n: 语句n; break; default: 语句 } 运行中switch后面的表达式的值将会做为条件,与case后面的各个常量表达式的值相对比,如果相等时则执行后面的语句,再执行break(间断语句)语句,跳出switch语句。如果case没有和条件相等的值时就执行default后的语句。当要求没有符合的条件时不做任何处理,则可以不写default语句。 在上面的课程中我们一直在用printf这个标准的C输出函数做字符的输出,使用它当然会很方便,但它的功能强大,所占用的存储空间自然也很大,要1K左右字节空间,如果再加上scanf输入函数就要达到2K左右的字节,这样的话如果要求用2K存储空间的芯片时就无法再使用这两个函数,例如AT89C2051。在这些小项目中,通常我们只是要求简单的字符输入输出,这里以笔者发表在《无线电杂志》的一个简单的串口应用实例为例,一来学习使用开关语句的使用,二来简单了解51芯片串口基本编程。这个实例是用PC串口通过上位机程序与由AT89C51组成的下位机相通讯,实现用PC软件控制AT89C51芯片的IO口,这样也就可以再通过相关电路实现对设备的控制(这里是控制继电器)。在笔者的网站https://www.wendangku.net/doc/1516328576.html,还可以查看相关文章。所使用的硬件还是用回我们以上课程中做好的硬件,以串口和PC连接,用LED查看实验的结果。下面是源代码。 /*---------------------------------------- CDLE-J20_Main.c PC串口控制IO口电路 可以用字符控制和读取IO口 简单版本V2.0 更加好的单片机版本和PC控制软件和DLL动态库 请访问磁动力工作室https://www.wendangku.net/doc/1516328576.html, Copyright 2003 https://www.wendangku.net/doc/1516328576.html, All rights reserved. 明浩E-mail: pnzwzw@https://www.wendangku.net/doc/1516328576.html, pnzwzw@https://www.wendangku.net/doc/1516328576.html, ----------------------------------------*/ #include

switch的用法总结大全

switch的用法总结大全 想了解switch的用法么?今天给大家带来了switch的用法,希望能够帮助到大家,下面就和大家分享,来欣赏一下吧。 switch的用法总结大全 switch的意思 n. 开关,转换,转换器,软鞭子,[信]接线台 vt. vi. 转变,改变,转换,关闭电流,鞭打 vt. 转换,挥动(棍棒、鞭子等),迅速转动,鞭打 vi. 交换,调换 变形:过去式: switched; 现在分词:switching; 过去分词:switched; switch用法 switch可以用作动词 switch用作名词时意思是“开关”“转换”,用作动词时意思是“拧开关”“转变”“转换”,指通过某种措施或办法使某事物改变或改换其原有的位置、名称或运行方式等,引申可表示“挥动某物打某人”“打开”。

switch可用作及物动词,也可用作不及物动词。用作及物动词时,接名词或代词作宾语,也可接以动词不定式充当补足语的复合宾语。 switch用作动词的用法例句 No, hold it a second, switch that to roast chicken.不,等一等,把那个换成烤子鸡。 Our glasses have been switched--this is mine.咱们的玻璃杯对调了--这个是我的。 Nobody wants to switch back to the old system.谁也不希望回复到旧制度。 switch用法例句 1、The spokesman implicitly condemned the United States policy switch. 发言人含蓄地谴责了美国政策上的转变。 2、Every time I switch on the TV, theres football. Its overkill. 我每次打开电视都是足球节目,真是受不了。 3、Prince Edward threw the switch to light the illuminations. 爱德华王子按动开关亮起彩灯。

switch语句的用法

Switch语句的一般形式为: Switch(表达式) { case 常量表达式1: 语句1;break; case 常量表达式2: 语句2; break; … case 常量表达式n: 语句n; break; default: 语句;break; } 意思是先输入表达式的值,再输出和case 后的常量表达式比较,若不在case的语句中,则执行default后的语句;若与某一个常量表达式相等,则从这个表达式后的语句开始执行,并执行该case后的语句。 与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句; 而switch语句后有break语句,其含义为结束当前循环,不再执行该循环体。 例题:从键盘中输入0~6,并输出星期几。 #include #include using namespace std; int main() { int day;

cin>>day; switch(day) { case 0: cout<<"Sunday"<

switch语句用法详解-switch语句举例

switch语句用法详解|switch语句举例 switch语句用法详解一般形式: switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1; } 意思是先计算表达式的值,再逐个和case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句; 若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。 与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句; 而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case 语句。在每一case语句之后增加break 语句,使每一次执行之后均可跳出switch 语句,从而避免输出不应有的结果。 inta;printf(“input integer number: “);scanf(“%d”,&a);switch(a){case1:printf(“Monday”);break;case2:printf(“Tues day”);break;case3:printf(“Wednesday”);break;case4:printf(“Thursday”);break;c ase5:printf(“Friday”);break;case6:printf(“Saturday”);break;case7:printf(“Sunda

y”);break;default:printf(“error”);}注意: 1.case后的常量表达式不能相同; 2. case后的语句可以有多个且不用花括号括起来; 3.case和default子句的先后顺序可以先后变动,default子句可以省略不用;感谢您的阅读!

If、switch选择语句

一。if语句的使用方法 if语句用于判断条件并按照相应的条件执行不同的代码块,if语句包括多种呈现形式,这些形式分别是if、if else、if else if。 1.声明if语句 注意:if语句的条件表达式最终是一个布尔类型 if语句的语法如下所示。 if(布尔值) 程序语句 当布尔值为true,则会执行程序语句,当布尔值为false时,程序会跳过执行的语句执行,示例代码如下所示。 if (true)//使用if语句 { console.writeline("ture");//为true的代码块 } 上述代码首先会判断if语句的条件,因为if语句的条件为true,所以if语句会执行大括号内的代码,程序运行会输出字符串true,如果将if内的条件改为false,那么程序将不会执行大括号内的代码,从而不会输出字符串true。 2.声明if else语句 if else语句的语法如下所示。 if(布尔值) 程序语句1 else 程序语句2 同样,当布尔值为true,则程序执行程序语句1,但当布尔值为false时,程序则执行程序语句2,示例代码如下所示。 if (true)//使用if语句判断条件 {

console.writeline("ture");//当条件为真时执行语句 } else//如果条件不成立则执行 { console.writeline("false");//当条件为假时执行语句 } 上述代码中if语句的条件为true,所以if语句会执行第一个大括号中间的代码,而如果将true改为false,则if语句会执行第二个大括号中的代码。 3.声明if else if语句 当需要进行多个条件判断是,可以编写if else if语句执行更多条件操作,需要注意的是if else if语句一个整体,当条件匹配满足之后就停止,也就是说这个整体只会执行一个条件满足的语句,示例代码如下所示。 if (month == "12")//判断month是否等于12 { console.writeline("winter");//输出winter } else if (month == "7")//判断month是否等于7 { console.writeline("summer");//输出summer } else if (month == "3")//判断month是否等于3 { console.writeline("spring");//输出spring } else//当都不成立时执行 { console.writeline("we don’t have this month");//输出默认情况

C语言中switch的应用

C语言中switch的应用 程序思想: C++编程灵活简单,我们只要有自己的对设计目标的整体思想,其余的属于添砖加瓦,比如: 此次计算器的编程设计可能用到“switch()”可能会达到简单,操作领会直白等优点;可能会用到哪几种数据类型,他们用来控制什么,实现啥功能,首先我们可以定义主要的参数和类型,其余缺少的后继添加弥补…… 或者我们对于更复杂的编程我们可以画流程图,实时的同步出自己的思想。因此,就我个人而言,多联系,多试试,归纳与敢于实践是永不挫败的必胜之心!(加油:IT行业欢迎你) 计算器程序代码: #include<> main() { float a,b; float jia,jian,cheng,chu; char c; printf("请输入计算的两个数值【任意数且仅限加减乘除】!!!\n"); printf(" 格式:1+1=\n"); printf(" 1-1=\n"); printf(" 1*1=\n"); printf(" 1/1=\n"); printf("\n"); printf("\n"); printf("您输入的是:"); scanf("%f%c%f",&a,&c,&b); jia=a+b; jian=a-b; cheng=a*b; chu=a/b; switch(c) { case '+':printf("%\n",jia);break; /*控制小数点的尾数:保留后三位*/ case '-':printf("%\n",jian);break; case '*':printf("%\n",cheng);break; case '/':printf("%\n",chu);break; } } 运行及结果:

C 中SWITCHCASEBREAK语句的使用例子

C++中SWITCH-CASE BREAK语句的使用例 子 在C++中,也有这样的开关,那就是switch语句。它能够很简捷地描述出多岔路口的情况。具体的语法格式为: switch(表达式) { case 常量表达式1: { 语句块1; break; } …… case 常量表达式n: { 语句块n; break;

} default: { 语句块n+1; } } 在switch语句中,我们要记住四个关键词,分别是switch、case、default和break。switch是语句的特征标志(图中标作sw);case表示当switch后的表达式满足某个case后的常量时,运行该case以后的语句块。要注意,任意两个case后的常量不能相等,否则switch 将不知道选择哪条路走。default表示当表达式没有匹配的case时,默认(default)地运行它之后的语句块(图中未标出);break表示分岔路已经到头,退出switch

语句。 下面给出一个例子: #include ; int main() { char answer; cout;>;answer; switch (answer) { case 'Y': case 'y': cout<<"您的选择是正确的"<

c语言中switch的用法

c语言中switch的用法 c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){case 常量表达式1: 语句1;case 常量表达式2: 语句2;…case 常量表达式n: 语句n;default: 语句n+1;}其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。 【例4-9】01.#include 02.int main(void){03. int a;04. printf("input integer number: ");05. scanf("%d",&a);06. switch (a){07. case 1:printf("Monday\n");08. case 2:printf("Tuesday\n");09. case 3:printf("Wednesday\n");10. case 4:printf("Thursday\n");11. case 5:printf("Friday\n");12. case 6:printf("Saturday\n");13. case 7:printf("Sunday\n");14. default:printf("error\n"); 但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。 这当然是不希望的。 为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。 在switch语句中,“case 常量表达式只相当于一个语句标号,表

switch语句的用法

if语句处理两个分支,处理多个分支时需使用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语句的执行流程是:首先计算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语句相当于一个空语句.例如,将上面例子中switch 语句中的default部分去掉,则当输入的字符不是"A","B","C"或"D"时,此switch语句中的任何一条语句也不被执行. (4) 在switch-case语句中,多个case可以共用一条执行语句,如:

SWITCH语句格式

被判断的对象等于哪个case值就执行哪个case分支,不等于任何case值就执行default 分支。 default分支是可选项。 switch语句用于表达一类特殊的多分支问题,即被判断的对象只有一个、该对象有多个可能的值、这些值可以一一列出的问题。 任何switch语句都可以换成多分支if语句,但反过来不一定可以。 switch语句还有如下使用格式: switch(变量或含变量的表达式) { case 值1 : case 值2 : 被判断的对象等于 case 值3 : 值1或值2或值3 分支1; 时执行分支1 break; case 值4: 被判断的对象等于值4 case 值5: 或值5时执行分支2 分支2; break; ...... default: 分支n+1; } 【例1】写一个程序,当输入1时输出星期一,输入2时输出星期二,输入3时输出星期三......(用switch语句)。篇二:c语言“switch语句”的使用技巧 c语言“switch语句”的使用技巧 steve c语言作为国际上流行的计算机语言已经和正在被广大的计算机用户使用。凡是使用过的人都会有同样的感觉——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语句以及

c语言switch的用法

c语言switch的用法 switch 是一个开关语句,和case配套使用,和if else 判断语句差不多,switch 语句是用于多分支语句进行条件判断下面小编就来为大家介绍一下c语言switch的用法。用于多分支选择的switch 语句,其一般形式为:switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; case 常量表达式n: 语句n; default: 语句n+1; } 其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。【例4-9】#include stdio.h int main(void){ int a; printf(input integer number: );scanf(%d,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); } return 0; } 本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句

Switch_语句 使用方法

C 语言“switch 语句” 的使用技巧---- C 语言作为国际上流行的计 算机语言已经和正在被广大的计算机用户使用。凡是使用过的人都会有同样的感觉——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”);

使用switch计算加减乘除

使用switch计算加减乘除(基于Eclipse开发) import java.util.Scanner; public class Switch { public static void main(String args[]) { System.out.println("请输入要计算的式子:"); Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数:"); int a=sc.nextInt(); System.out.println("请输出运算符:"); String str=sc.next(); char ch=str.charAt(0); System.out.println("请输入第二个数:"); int b=sc.nextInt(); switch(ch) { case '+': System.out.println(a+"+"+b+"="+(a+b)); break; case '-': System.out.println(a+"-"+b+"="+(a-b)); break; case '*': System.out.println(a+"*"+b+"="+(a*b)); break; case '/': if(a!=0) { System.out.println(a+"/"+b+"="+(a/b)); } else { System.out.println("除数不可以为零!"); } break; default: System.out.println("输入的不合法!"); } } }

例题3 4和switch--case语句

3.输入x,输出y,x和y满足关系: x<-5 y=x; -5<=x<1 y=2*x+5; 1<=x<4 y=x+6; x>=4 y=3*x-2; 程序如下: main() { float x,y; scanf(%f,&x); if(x<-5) y=x; else if(-5<=x&&x<1) y=2*x+5; else if(1<=x&&x<4) y=x+6; else y=3*x-2; printf(%f\n,y); } 这里要说明两点: (1).-5<=x&&x<1不能写成-5<=x<1;1<=x&&x<4也不能写成1<=x<4;在C语言中,不能认识连续不等式。 (2).y=2*x+5不能写成y=2x+5;y=3*x-2也不能写成y=3x-2;这与我们平时所写的方法不一样。 4.输入三个数x,y,z,然后按从大到小输出。 main() { float x,y,z; scanf(%f%f%f,&x,&y,&z); if(x>=y&&x>=z) { printf(%f\t,x); if(y>=z) printf(%f\t%f\n,y,z); else printf(%f\t%f\n,z,y); } else if(y>=x&&y>=z) { printf(%f\t,y); if(x>=z) printf(%f\t%f\n,x,z); else printf(%f\t%f\n,z,x); }

{ printf(%f\t,z); if(x>=y) printf(%f\t%f\n,x,y); else printf(%f\t%f\n,y,x); } } 说明:这是一个典型的if语句嵌套结构,如果不使用括号,那么if和else的对应关系就乱了 四、switch--case语句 在编写程序时, 经常会碰到按不同情况分转的多路问题, 这时可用嵌套if -else-if语句来实现, 但if-else-if语句使用不方便, 并且容易出错。对这种情况, Turbo C2.0提供了一个开关语句。开关语句格式为: switch(变量) { case 常量1: 语句1或空; case 常量2: 语句2或空; . case 常量n: 语句n或空; default: 语句n+1或空; } 执行switch开关语句时,将变量逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语句。 注意: 1.switch中变量可以是数值,也可以是字符,但必须是整数。 2.可以省略一些case和default。 3.每个case或default后的语句可以是语句体,但不需要使用{和}括起来。 例如: main() { int x,y; scanf(%d,&x); witch(x) { case 1:y=x+1;break; /*退出开关语句,遇到break才退出*/ case 4:y=2*x+1;break; default:y=x--;break;

switch语句练习

第五章switch语句练习题 1.若运行时输入:3 5/<回车>,则以下程序的运行结果是________ main( ) {float x,y; char o; double r; scanf(“%f %f %c”,&x,&y,&o); switch(o) {case ’+’:r=x+y;break; case ’-‘:r=x-y;break; case ’*’:r=x*y;break; case ’/’:r=x/y;break;} printf(“%f”,r);} 2. 根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能. (假设mark的取值在1~100之间的整数.) if语句: if(mark<60)k=1; else if(mark<70)k=2; else if(mark<80)k=3; else if(mark<90)k=4; else if(mark<100)k=5; switch语句: switch( [1] ) {[2] k=1; break; case 6: k=2: break; case 7: k=3; break; case 8: k=4; break; [3] k=5; 3.设有程序片段: switch(grade) {case ’A’:printf(“85-100\n”); case ’B’:printf(“70-84n”); case ’C’:printf(“60-69\n”); case ’D’:printf(“<60\n”); default:printf(“error!\n”);} 若grade的值为’C’,则输出结果是_________. 4.以下程序段的运行结果是_____. int x=1,y=0; switch(x) {case 1: switch(y) {case 0:printf(“**1**\n”);break; case 1:printf(“**2**\n”);break;} case 2:printf(“**3**\n”);} 5.根据以下函数关系,对输入的每个x值,计算出相应的y值,请在程序的( ) 内填正确内容

相关文档