收藏 分销(赏)

第3章程序设计初步10级-唐.pptx

上传人:可**** 文档编号:963181 上传时间:2024-04-09 格式:PPTX 页数:109 大小:714.80KB
下载 相关 举报
第3章程序设计初步10级-唐.pptx_第1页
第1页 / 共109页
第3章程序设计初步10级-唐.pptx_第2页
第2页 / 共109页
第3章程序设计初步10级-唐.pptx_第3页
第3页 / 共109页
第3章程序设计初步10级-唐.pptx_第4页
第4页 / 共109页
第3章程序设计初步10级-唐.pptx_第5页
第5页 / 共109页
点击查看更多>>
资源描述

1、第3章程序设计初步3.13.1面向过程的程序设计和算法面向过程的程序设计和算法3.23.2+程序和语句程序和语句3.33.3赋值语句赋值语句3.43.4C+C+的输入与输出的输入与输出3.53.5编写顺序结构的程序编写顺序结构的程序3.63.6关系运算和逻辑运算关系运算和逻辑运算3.73.7选择结构和语句选择结构和语句3.83.8条件运算符和条件表达式条件运算符和条件表达式3.93.9多分支选择结构和多分支选择结构和switchswitch语句语句3.103.10编写选择结构的程序编写选择结构的程序3.113.11循环结构和循环语句循环结构和循环语句3.123.12循环的嵌套循环的嵌套3.13

2、3.13breakbreak语句和语句和continuecontinue语句语句3.143.14编写循环结构的程序编写循环结构的程序 在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,程序设计者不仅要考虑程序要“做什么”,还要解决“怎么做”的问题,根据程序要“做什么”的要求,写出一个个语句,安排好它们的执行顺序。3.1 面向过程的程序设计和算法一个面向过程的程序应包括以下两方面内容:(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。(2)对操作的描述。即操作步骤,也就是算法。对于面向过程的程序,可以用下面的公式表示:程序程序=算法算法+数据结构数据结构 3

3、.1.1 算法的概念1.自然语言用中文或英文等自然语言描述算法。但容易产生歧义性,用中文或英文等自然语言描述算法。但容易产生歧义性,在程序设计中一般不用自然语言表示算法。在程序设计中一般不用自然语言表示算法。2.流程图 可以用传统的流程图或结构化流程图。用图的形式表示算可以用传统的流程图或结构化流程图。用图的形式表示算法,比较形象直观,但修改算法时显得不大方便。法,比较形象直观,但修改算法时显得不大方便。3.伪代码(pseudo code)伪代码是用介于自然语言和计算机语言之间的文字和符号伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。来描述算法。4.用计算机语言表示算法 3.1

4、.2 算法的表示每一个程序单位由以下几个部分组成:(1)(1)预处理命令。如预处理命令。如#includeinclude命令和命令和#definedefine命令。命令。(2)(2)声明部分。例如对数据类型和函数的声明,以声明部分。例如对数据类型和函数的声明,以及对变量的定义。及对变量的定义。(3)(3)函数。包括函数首部和函数体,在函数体中可函数。包括函数首部和函数体,在函数体中可以包含若干声明语句和执行语句。以包含若干声明语句和执行语句。3.2 C+程序和语句#include /include /预处理命令预处理命令using namespace std;/using namespace

5、std;/在函数之外的声明部分在函数之外的声明部分int a=3;/int a=3;/在函数之外的声明部分在函数之外的声明部分int main()/int main()/函数首部函数首部 float b;/float b;/函数内的声明部分函数内的声明部分 b=4.5;/b=4.5;/执行语句执行语句 coutab;/coutab;/执行语句执行语句 return 0;/return 0;/执行语句执行语句 图3.1程序应该包括数据描述(由声明语句来实现)和数程序应该包括数据描述(由声明语句来实现)和数据操作(由执行语句来实现)。据操作(由执行语句来实现)。数据描述数据描述主要包括数据类型的声

6、明、函数和变量的主要包括数据类型的声明、函数和变量的定义、变量的初始化等。定义、变量的初始化等。数据操作数据操作的任务是对已提供的任务是对已提供的数据进行加工。的数据进行加工。C+C+程序中最小的独立单位是程序中最小的独立单位是语句语句(statement)statement)。它相当于一篇文章中的一个句子。句子是用句号结束它相当于一篇文章中的一个句子。句子是用句号结束的。语句一般是用分号结束的的。语句一般是用分号结束的(复合语句是以右花括复合语句是以右花括号结束的号结束的)。1.声明语句 int a,b;float c,d;语句分类:2.执行语句通知计算机完成一定的操作。执行语句包括:通知计

7、算机完成一定的操作。执行语句包括:(1)(1)控制语句,完成一定的控制功能。控制语句,完成一定的控制功能。C+C+有有9 9种控制语句,种控制语句,即即 if()else if()else (条件语句)条件语句)for()for()(循环语句)循环语句)while()while()(循环语句)循环语句)dowhiledowhile()(循环语句)循环语句)continue continue (结束本次循环语句)结束本次循环语句)break break (中止执行或循环语句)中止执行或循环语句)switch switch (多分支选择语句)多分支选择语句)goto goto (转向语句)转向语句

8、)return return (从函数返回语句)从函数返回语句)(2)(2)函数和流对象调用语句。函数和流对象调用语句。sort(x,y,z);/sort(x,y,z);/假设已定义了假设已定义了sortsort函数,它有函数,它有3 3个参数个参数coutxendl;/coutx100)z=z-100if(z100)z=z-100;coutz;cout0)cout00)cout0endl;其作用是:先进行赋值运算(将其作用是:先进行赋值运算(将b b的值赋给的值赋给a a),),然然后判断后判断a a是否大于是否大于0 0,如大于,如大于0 0,执行,执行cout0endlcout00)co

9、ut00)cout0endl;因为在因为在if if的条件中不能包含赋值语句。的条件中不能包含赋值语句。C+C+把赋值把赋值语句和赋值表达式区别开来,增加了表达式的种类,语句和赋值表达式区别开来,增加了表达式的种类,能实现其他语言中难以实现的功能。能实现其他语言中难以实现的功能。C+的输出和输入是用“流”(stream)的方式实现的。3.4 C+的输入与输出coutcout语句的一般格式为语句的一般格式为 coutcout表达式表达式11表达式表达式22cin变量变量11变量变量22变量变量n;n;*3.4.1 输入流与输出流的基本操作一个一个coutcout语句可以分写成若干行。如语句可以分

10、写成若干行。如coutThis is a simple C+program.endl;coutThis is a simple C+program.endl;可以写成可以写成 coutThis is /coutThis is /注意行末尾无分号注意行末尾无分号a C+a C+program.program.endl;/endl;/语句最后有分号语句最后有分号也可写成多个也可写成多个coutcout语句,即语句,即coutThis is;/coutThis is;/语句末尾有分号语句末尾有分号cout a C+;cout a C+;cout program.;cout program.;cout

11、endl;coutendl;couta,b,c;/couta,b,c;/错误,不能一次插入多项错误,不能一次插入多项couta+b+c;/couta+b+c;/正确,这是一个表达式,作为一项正确,这是一个表达式,作为一项在用在用coutcout输出时,用户不必通知计算机按何种类型输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。据按相应的类型输出。如如:int a=4int a=4;float b=345.789;char c=a;float b=345.789;char c=a;couta b

12、cendl;couta b cabcd;cinabcd;可以写成可以写成 cina /cina /注意行末尾无分号注意行末尾无分号 b /b /这样写可能看起来清晰些这样写可能看起来清晰些 c c d;d;也可以写成也可以写成cina;cina;cinb;cinb;cinc;cinc;cind;cind;输入:输入:1 2 3 4 也可以为:也可以为:1 1 2 32 3 4 4 在用cin输入时,系统也会根据变量的类型从输入流中提取相应长度的字节。如有char c1,c2;char c1,c2;int a;int a;float b;float b;cinc1c2ab;cinc1c2ab;如

13、果输入1234 56.781234 56.78 1.putchar函数(字符输出函数)putchar函数的作用是向终端输出一个字符。例如putchar(c)putchar(c);它输出字符变量的值。3.4.3 用getchar和putchar 函数进行字符的输入和输出例3.2 输出单个字符。#include /include /或者包含头文件或者包含头文件stdio.hstdio.h:#include#include using namespace std;using namespace std;int main()int main()char a,b,c;char a,b,c;a=B;b=O

14、;c=Y;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(putchar(a);putchar(b);putchar(c);putchar(n);n);putchar(66);putchar(79);putchar(89);putchar(10);/putchar(66);putchar(79);putchar(89);putchar(10);/输出转义字符输出转义字符 return 0;return 0;运行结果为BOYBOYBOYBOY2.getchar函数(字符输入函数)此函数的作用是从终端(或系统隐含指定的输入设备)此函数的作用

15、是从终端(或系统隐含指定的输入设备)输入一个字符。输入一个字符。getchargetchar函数没有参数,其一般形式为函数没有参数,其一般形式为getchargetchar()函数的值就是从输入设备得到的字符。函数的值就是从输入设备得到的字符。例3.3 输入单个字符。#include include using namespace std;using namespace std;int main()int main()char c;char c;c=getchar();putchar(c+32);putchar(c=getchar();putchar(c+32);putchar(n);n);r

16、eturn 0;return 0;在运行时,如果从键盘输入大写字母A并按回车键,就会在屏幕上输出小写字母a。请注意,请注意,getchar()getchar()只能接收一个字符。只能接收一个字符。getchargetchar函数得到的字符函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。作为表达式的一部分。例如,例例如,例3.33.3第第5 5行可以用下面一行代替:行可以用下面一行代替:putcharputchar(getchargetchar()()+32+32););putchar(putchar(

17、n);n);因为因为getchar()getchar()读入的值为读入的值为 AA,A+32A+32是小写字母是小写字母 a a的的ASCIIASCII码,因此码,因此putcharputchar函数输出函数输出 a a。此时不必定义变量此时不必定义变量c c。也可用也可用coutcout输出输出getchargetchar函数得到字符的函数得到字符的ASCIIASCII的值:的值:coutgetchar()coutgetchar();这时输出的是整数这时输出的是整数9797,因为用,因为用getchar()getchar()读入的实际上是字符的读入的实际上是字符的ASCIIASCII码,现在

18、并未把它赋给一个字符变量,码,现在并未把它赋给一个字符变量,coutcout就按整数形式就按整数形式输出。如果改成输出。如果改成cout(c=getchar();/cout(c=getchar();/设设c c已定义为字符变量已定义为字符变量则输出为字母则输出为字母 a a,因为要求输出字符变量因为要求输出字符变量c c的值。的值。可以看到用可以看到用putcharputchar和和getchargetchar函数输出和输入字符十分灵函数输出和输入字符十分灵活方便,由于它们是函数所以可以出现在表达式中,例如活方便,由于它们是函数所以可以出现在表达式中,例如cout(c=getchar()+32

19、);cout(c=getchar()+32);#include#include main()float a,b,c,s,area;cinabc;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);cout a=a b=b c=c;coutarea=area;例 输入三角形边长,求面积输入:3,4,6 输出:a=3.00,b=4.00,c=6.00 s=6.50 area=5.33文件包含预处理命令变量定义输入数据输出数据3.5 编写顺序结构的程序例例3.5 3.5 求一元二次方程式求一元二次方程式axax2 2+bx+c=0+bx+c=0的根。的根。a,

20、b,ca,b,c的值在运行的值在运行时由键盘输入,它们的值满足时由键盘输入,它们的值满足b b2 2-4ac0-4ac0。#include include#include#include /using namespace std;/using namespace std;int main()int main()float a,b,c,x1,x2;float a,b,c,x1,x2;cinabc;cinabc;x1=(-b+sqrt(b*b-4*a*c)/(2*a);x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a);x2=(-b-

21、sqrt(b*b-4*a*c)/(2*a);coutx1=x1endl;coutx1=x1endl;coutx2=x2endl;coutx2=x2endl;return 0;return 0;运行情况如下:运行情况如下:4.5 8.8 2.4 4.5 8.8 2.4 x1=-0.327612x1=-0.327612x2=-1.17794x2=-1.17794 关系运算符关系运算符n n种类种类:=!=!=n n结合方向:自左向右结合方向:自左向右n n优先级别:优先级别:=!=优先级6(高)优先级7(低)例 ca+b /c(a+b)ab!=c /(ab)!=c a=bc /a=(bc /a=(

22、bc)n n关系表达式的值:是逻辑值关系表达式的值:是逻辑值“真真”或或“假假”,用,用1 1和和0 0表表示示例例 int a=3,b=2,c=1,d,f;int a=3,b=2,c=1,d,f;ab ab (ab)=c (ab)=c b+ca b+cb d=ab f=abc f=abc/表达式值1/表达式值1/表达式值0/d=1/f=03.6 关系运算和逻辑运算n n关系运算注意:关系运算注意:例 若a=0;b=0.5;x=0.3;则 a=x0 结果为 A100 结果为10例 注意区分“=”与“=”int a=0,b=1;if(a=b)cout“a equal to b”;else cou

23、t“a not equal to b”;关系运算往往要求根据某个指定的条件是否满足来决定执行的关系运算往往要求根据某个指定的条件是否满足来决定执行的内容。内容。例如,购物在例如,购物在10001000元以下的打九五折,元以下的打九五折,10001000元及以上的打九折。元及以上的打九折。C+C+提供提供if if语句来实现这种条件选择。如语句来实现这种条件选择。如if amount1000 tax=0.95;/amountif amount1000 tax=0.95;/amount代表购物总额,代表购物总额,taxtax代表折扣代表折扣else tax=0.9;else tax=0.9;pay

24、=amount*tax;/paypay=amount*tax;/pay为实付款为实付款ab!a!ba&ba|b真假真假假假真真逻辑运算符和表达式逻辑运算符和表达式 逻辑运算符逻辑运算符n n种类:种类:!&|!&|n n逻辑运算真值表逻辑运算真值表n n 运算量运算量:0 0表示表示“假假”,非非0 0表示表示“真真”,运算结果运算结果:0 0表示表示“假假”,1 1表示表示“真真”,真假假假假假真真假假真真真假真真!(3)&(12)|(13)高低例 a=x&xb&xy a=b|x=y !a|abl优先级:l结合方向:!:从右向左&:从左向右|:从左向右/(a=x)&(xb)&(xy)/(a=

25、b)|(x=y)/(!a)|(ab)!(3)&(12)|(13)高低l优先级:l结合方向:!:从右向左&:从左向右|:从左向右例例 a=4;b=5;a=4;b=5;!a !a a&b a&b a|b a|b !a|b !a|b 4&0|2 4&0|2 53&2|83&2|83)&2|(8b)&(n=cd)/结果结果m=0,n=1高高低低n n判定判定判定判定2000200025002500年中的每一年是否闰年,将结年中的每一年是否闰年,将结年中的每一年是否闰年,将结年中的每一年是否闰年,将结果输出。果输出。果输出。果输出。关键在于找出关键在于找出是否闰年的条件:是否闰年的条件:1、不能被、不能

26、被4整除为非闰年整除为非闰年2、(普通年)能被、(普通年)能被4整除但不能被整除但不能被 100整除为闰年整除为闰年3、能被、能被100(世纪年)整除又能被(世纪年)整除又能被 400整除为闰年整除为闰年4、其他为非闰年、其他为非闰年(year%4=0&year%100!=0|year%400=0)year%4=0&year%100!=0year%100=0&year%400=0C C语言没有提供逻辑型数据,关系表达式的值语言没有提供逻辑型数据,关系表达式的值(真或假真或假)分别用数分别用数值值1 1和和0 0代表。代表。C+C+增加了逻辑型数据。逻辑型常量只有两个,即增加了逻辑型数据。逻辑型

27、常量只有两个,即false(false(假假)和和true(true(真真)。逻辑型变量要用类型标识符逻辑型变量要用类型标识符boolbool来定义,它的值只能是来定义,它的值只能是truetrue和和falsefalse之一。如之一。如bool found,flag=false;bool found,flag=false;found=true;found=true;/将逻辑常量将逻辑常量truetrue赋给逻辑变量赋给逻辑变量foundfound由于逻辑变量是用关键字由于逻辑变量是用关键字boolbool来定义的,因此又称为布尔变量。来定义的,因此又称为布尔变量。逻辑型常量又称为布尔常量。所

28、谓逻辑型,就是布尔型。逻辑型常量又称为布尔常量。所谓逻辑型,就是布尔型。设立逻辑类型的目的是为了看程序时直观易懂。设立逻辑类型的目的是为了看程序时直观易懂。3.6.2 逻辑常量和逻辑变量在编译系统处理逻辑型数据时,将false处理为0,将true处理为1。因此,逻辑型数据可以与数值型数据进行算术运算。如果将一个非零的整数赋给逻辑型变量,则按“真”处理,如flag=123;/flag=123;/赋值后赋值后flagflag的值为的值为truetruecoutflag;couty)coutxy)coutx;elsecout1000)index=0.4;else if(salary800)index

29、=0.3;else if(salary600)index=0.2;else if(salary400)index=0.1;else index=0;l说明:uif后面的表达式类型任意u语句可以是复合语句u if(x)if(x!=0)if(!x)if(x=0)如:if(a=b&x=y)cout“a=b”“x=y”;if(3)cout“OK”;if(a)couta;例 考虑下面程序的输出结果:#include main()int x,y;cinxy;if(xy)x=y;y=x;else x+;y+;coutxy;Compile Error!例 求一个数的绝对值#include main()int

30、x,y;coutx;y=x;if(y0)y=-y;coutn“integer:”x”“absolute value:”absolute value:12例 输入两个数并判断两数相等否main()int a,b;couta;coutb;if(a=b)couta=bn;else couta!=bn;运行:Enter integer a:12 Enter integer b:12 a=b 运行:Enter integer a:12 Enter integer b:9 a!=b 例 判断输入字符种类main()char c;coutEnter a character:;c=getchar();if(c

31、47)cout=0&c=9)cout=A&c=Z)cout=a&c=z)coutThe character is a lower lettern;else coutThe character is other charactern;vif语句嵌套:(在一个if语句中包含一个或多个if语句)l一般形式:if(expr1)if(expr2)statement1 else statement2内嵌ifif(expr1)statement1else if(expr3)statement3 else statement4内嵌ifif(expr1)if(expr2)statement1 else stat

32、ement2else if(expr3)statement3 else statement4内嵌if内嵌if例 输入两数并判断其大小关系main()int x,y;coutxy;if(x!=y)if(xy)coutYn;else coutXYn;else printf(X=Yn);运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Yif else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.例:if(a=b)if(b=c)cout“a=b=c”;else c

33、out“a!=b”;修改:if(a=b)if(b=c)cout“a=b=c”;else cout“a!=b”;Tip:实现实现if else 正确配对方法:加正确配对方法:加 例 考虑下面程序输出结果:main()int x=100,a=10,b=20;int v1=5,v2=0;if(ab)if(b!=15)if(!v1)x=1;else if(v2)x=10;x=-1;coutx;结果:结果:-1例3.6 求三角形的面积。#include include#include /#include /使用数学函数时要包含头文件使用数学函数时要包含头文件使用数学函数时要包含头文件使用数学函数时要包含

34、头文件cmathcmath#include /#include /使用使用使用使用I/OI/O流控制符要包含头文件流控制符要包含头文件流控制符要包含头文件流控制符要包含头文件iomanipiomanipusing namespace std;using namespace std;int main()int main()double a,b,c;double a,b,c;coutplease enter a,b,c coutabc;cinabc;if(a+bc&b+ca&c+ab)if(a+bc&b+ca&c+ab)/复合语句开始复合语句开始复合语句开始复合语句开始 double s,area

35、;/double s,area;/在复合语句内定义变量在复合语句内定义变量在复合语句内定义变量在复合语句内定义变量 s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);coutsetiosflags(ios coutsetiosflags(ios fixed)setprecision(4);/fixed)setprecision(4);/指定输出的数包含指定输出的数包含指定输出的数包含指定输出的数包含4 4位小数位小数位小数位小数 coutarea=areaendl;/couta

36、rea=areaendl;/在复合语句内输出局部变量的值在复合语句内输出局部变量的值在复合语句内输出局部变量的值在复合语句内输出局部变量的值 /复合语句结束复合语句结束复合语句结束复合语句结束else coutit is not a trilateral!endl;else coutit is not a trilateral!endl;return 0;return 0;please enter a,b,cplease enter a,b,c:2.45 3.67 4.892.45 3.67 4.89 area=4.3565area=4.3565v一般形式:一般形式:表达式1?表达式2:表达式

37、3v运算规则:运算规则:如果“表达式1”的值为非0(即逻辑真),则运算结果等于“表达式2”的值;否则,运算结果等于“表达式3”的值。expr1条件表达式取表达式2的值条件表达式取表达式3的值3.8 条件运算符和条件表达式v条件运算符的优先级与结合性:条件运算符的优先级与结合性:条件运算符的优先级,高于赋值运算符,但低于关系运算符和算术运算符。其结合性为“从右到左”(即右结合性)。算术运算符算术运算符关系运算符关系运算符条件运算符条件运算符赋值运算符赋值运算符低低高高3.8 条件运算符和条件表达式例:从键盘上输入一个字符,如果它是大写字母,例:从键盘上输入一个字符,如果它是大写字母,则把它转换成

38、小写字母输出;否则,直接输出。则把它转换成小写字母输出;否则,直接输出。#include include using namespace std;using namespace std;int main()int main()char ch;char ch;cinch;cinch;ch=(ch=A&ch=A&ch=Z)?(ch+32):ch;ch;coutchendl;coutchendl;return 0;return 0;运行:Ach=aa ch=a3.8 条件运算符和条件表达式switchswitch语句是多分支选择语句,用来实现多分支选语句是多分支选择语句,用来实现多分支选择结构。择结

39、构。它的一般形式如下:它的一般形式如下:switchswitch(表达式)表达式)case case 常量表达式常量表达式1 1:语句:语句1 1 case case 常量表达式常量表达式2 2:语句:语句2 2 .case case 常量表达式常量表达式n n:语句语句n n default default:语句语句n+1n+1 3.9 多分支选择结构和多分支选择结构和switch 语句语句此“表达式”允许为任何类型switch(表达式表达式)case E1:语句组语句组 1;break;case E2:语句组语句组 2;break;.case En:语句组语句组 n;break;defau

40、lt:语句组语句组;break;v执行过程:switch表达式语句组1语句组2语句组n语句组.E 2Endefaultcase E 1v说明:lE1,E2,En是常量表达式,且值必须互不相同 l语句标号作用,必须用break跳出lcase后可包含多个可执行语句,且不必加 lswitch可嵌套l多个case可共用一组执行语句如:case A:case B:case C:cout60n”;break;.例如,要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现:switch(grade)switch(grade)case Acase A:cout85100 cout85100nn;

41、case B case B:cout7084 cout7084nn;case C case C:cout6069 cout6069nn;case D case D:cout60 cout60nn;default default :couterror couterrornn;注意:执行完一个注意:执行完一个case流程后,流程控制转移到下一个流程后,流程控制转移到下一个case。“case常量常量表达式表达式”只是起语句标号的作用,并不是在该处进行条件判断。在执行只是起语句标号的作用,并不是在该处进行条件判断。在执行switch语句时,根据语句时,根据switch表达式的值找到与之匹配的表达式的

42、值找到与之匹配的case子句,就从此子句,就从此case句子开句子开始执行下去,不再进行判断。请思考:在上面的例子中,若始执行下去,不再进行判断。请思考:在上面的例子中,若grade的值等于的值等于A,则输出的内容是?,则输出的内容是?例如,要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现:switch(grade)switch(grade)case Acase A:cout85100 cout85100nn;case B case B:cout7084 cout7084nn;case C case C:cout6069 cout6069nn;case D case D:c

43、out60 cout60nn;default default :couterror couterrornn;注意:执行完一个注意:执行完一个case流程后,流程控制转移到下一个流程后,流程控制转移到下一个case。“case常量常量表达式表达式”只是起语句标号的作用,并不是在该处进行条件判断。在执行只是起语句标号的作用,并不是在该处进行条件判断。在执行switch语句时,根据语句时,根据switch表达式的值找到与之匹配的表达式的值找到与之匹配的case子句,就从此子句,就从此case句子开句子开始执行下去,不再进行判断。请思考:在上面的例子中,若始执行下去,不再进行判断。请思考:在上面的例子

44、中,若grade的值等于的值等于A,则输出的内容是?,则输出的内容是?因此break;break;break;break;最后一个最后一个defalt可以不加可以不加breat最后一个子句(default)可以不加break语句。如果grade的值为B,则只输出“7084”。流程图见图3.7。图3.7例 switch语句的嵌套使用 void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;cout“a=”a“b=”

45、b;运行结果:运行结果:a=2,b=1例例3.8 3.8 编写程序,判断某一年是否为闰年。编写程序,判断某一年是否为闰年。#include include using namespace std;using namespace std;int main()int main()int year;int year;bool leap;bool leap;coutplease enter year coutyear;/cinyear;/输入年份输入年份 if(year%4=0)/if(year%4=0)/年份能被年份能被4 4整除整除 if(year%100=0)/if(year%100=0)/年份

46、能被年份能被4 4整除又能被整除又能被100100整除整除 if(year%400=0)/if(year%400=0)/年份能被年份能被4 4整除又能被整除又能被400400整除整除 leap=true;/leap=true;/闰年,令闰年,令leap=true(leap=true(真真)else leap=false;/else leap=false;/非闰年,令非闰年,令leap=false(leap=false(假假)else /else /年份能被年份能被4 4整除但不能被整除但不能被100100整除肯定是闰年整除肯定是闰年 leap=true;/leap=true;/是闰年,令是闰年

47、,令leap=trueleap=true3.10 编写选择结构的程序 else /else /年份不能被年份不能被4 4整除肯定不是闰年整除肯定不是闰年 leap=false;/leap=false;/若为非闰年,令若为非闰年,令leap=falseleap=false if(leap)if(leap)coutyear is;/coutyear is;/若若leapleap为真,就输出年份和为真,就输出年份和“是是”elseelse coutyear is not;/coutyear is not;/若若leapleap为真,就输出年份和为真,就输出年份和“不是不是”cout a leap y

48、ear.endl;/cout a leap year.endl;/输出输出“闰年闰年”return 0;return 0;运行情况如下:运行情况如下:2005 2005 2005 2005 is not a leap year.is not a leap year.1900 1900 1900 is npt a leap year.1900 is npt a leap year.也可以将程序中第816行改写成以下的if语句:if(year%4!=0)if(year%4!=0)leap=falseleap=false;else if(year%100!=0)else if(year%100!=0

49、)leap=true;leap=true;else if(yearelse if(year400!=0)400!=0)leap=falseleap=false;elseelseleap=trueleap=true;也可以用一个逻辑表达式包含所有的闰年条件,将上述if语句用下面的if语句代替:if(year%4=0&year%100!=0)|(year%400=0)leap=true;if(year%4=0&year%100!=0)|(year%400=0)leap=true;else leap=falseelse leap=false;例例3.9 3.9 运输公司对用户计算运费。路程运输公司对

50、用户计算运费。路程(s)s)越远,每公里越远,每公里运费越低。标准如下:运费越低。标准如下:s s250km 250km 没有折扣没有折扣 250 250s s500 2500 2折扣折扣 500 500s s1000 51000 5折扣折扣 1000 1000s s2000 82000 8折扣折扣 2000 2000s s3000 103000 10折扣折扣 3000 3000s 15s 15折扣折扣设每公里每吨货物的基本运费为设每公里每吨货物的基本运费为p(pricep(price的缩写的缩写),货物重,货物重为为w(wrightw(wright的缩写的缩写),距离为,折扣为,距离为,折扣

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服