编程语言基础——c++教学课件作者刘炳松模块4

上传人:w****i 文档编号:102834348 上传时间:2019-10-04 格式:PPT 页数:54 大小:553.50KB
返回 下载 相关 举报
编程语言基础——c++教学课件作者刘炳松模块4_第1页
第1页 / 共54页
编程语言基础——c++教学课件作者刘炳松模块4_第2页
第2页 / 共54页
编程语言基础——c++教学课件作者刘炳松模块4_第3页
第3页 / 共54页
编程语言基础——c++教学课件作者刘炳松模块4_第4页
第4页 / 共54页
编程语言基础——c++教学课件作者刘炳松模块4_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《编程语言基础——c++教学课件作者刘炳松模块4》由会员分享,可在线阅读,更多相关《编程语言基础——c++教学课件作者刘炳松模块4(54页珍藏版)》请在金锄头文库上搜索。

1、模块4 语句,任务1 赋值语句 任务2 选择语句 任务3 循环语句 任务4 转移语句 任务5 预处理功能,返回,任务1 赋值语句,赋值语句是最基本的计算机语句。赋值语句的语法结构为: ; 符号“=”是最简单的赋值运算符,其语义是将表达式的值赋给变量标识符代表的变量。赋值语句是由赋值表达式组成的语句。变量标识符在赋值运算符的左边,所以也称为左值。例如,int x;x=5 +3;是将表达式“5 +3”的值8赋给x 【例4一1】赋值语句 int x,y; float a,b,c; x=36; /赋值语句对x赋值36 y=x*2+2*3-12; /赋值语句对y赋表达式x*2+2*3-12的值,下一页,

2、返回,任务1 赋值语句,a=36.5; /赋值语句对a赋值36. 5 b=2.5*a+1.2 /赋值语句对b赋表达式b=2.5*a+1.2的值 c=2.5*3.14-2.7/1/35+2.2; /赋值语句对c赋表达式2.5*3.14-2.7/1/35+2.2的值 以上是5个赋值语句。 a=b是赋值表达式,其语义是将b的值赋给a,这是赋值最简单的情况。另外还有4个赋值运算符,如表4-1所示。 a += 3的语义是a=a+3, a/=b+4的语义是a = a/(b +4)。从这两个例子能看出:可以将基本的4种算术运算符“+”(加)、“一”(减)、“。”、“/”与“=”结合成复合的赋值运算符。这4种

3、复合赋值运算符都是二元运算符,其优先级和“=”是一样的,结合性都是从右向左,上一页,下一页,返回,任务1 赋值语句,【例4一2】分析下面的赋值语句。 int a=3; a+=a*=2; couta; 得到的结果是: 12 这里有两个赋值号,首先应该知道,赋值表达式的值和赋值运算后的左值是一样的,这样,它就可以当作操作数继续进行别的运算。由于赋值号的结合性是自右向左,故先进行a*=2赋值运算,a变为6,接着6作为左边那个复合赋值运算符的右值进行赋值运算,左值a变为12,上一页,下一页,返回,任务1 赋值语句,赋值运算符的两边如果类型不一致,处理原则如下。 如果是字符型的数据赋给整型的变量,虽然字

4、符型的数也可以看做特殊的整型数,但两者所占的字节数不同,系统的处理方法是将字符的数放在整型变量的低8位,至于变量剩余的高位,如果系统将字符看为无符号的,则将剩余的高位补0,但如果系统将字符看作是有符号的,那么为厂保持数值不变,则要进行符号扩充,所谓符号扩充就是看字符数据的最高一位是0还是1,是0则将整型变量除厂低8位外的所有位补0,是1则补1。 如果是short型的数赋给long型的变量,这种情况和上面的情况类似,就是将short型的数放在long型变量的低16位,long型变量的高16位补0。如果是将unsigned型的数据赋给long型的变量时,则与上述的系统将字符看作是无符号的情况是一样

5、的,只在高位补0.,上一页,下一页,返回,任务1 赋值语句,将非unsigned型的数据赋给长度相同的unsigned型的变量,数据不变。 如果是将实型的数赋给一个整型的变量,则舍弃实数的小数部分,而不是四舍五人。 例如,执行下面的3个语句: int a; a=3.9; cout a; 得到的结果为3 如果是整型的数赋给实型变量,则数值的大小不变,但整型值须根据是赋给单精度还是双精度的变量,变为与其一致的形式,主要的就是要补足小数点的位数。,上一页,返回,任务2 选择语句,C+提供的选择语句有if语句和*witch语句。通过选择语句可以构造选择结构的程序。在选择结构中,可以给出两种或两种以上操

6、作,由给定的条件决定执行哪种操作。 4. 2. 1 if语句 if语句也称为条件语句,几乎所有的高级程序设计语言都提供if语句。它用来判断所给的条件是否充足,并根据判定的结果(真或假)来决定要执行的操作。,下一页,返回,任务2 选择语句,1. if语句格式和执行过程 if语句是二分支选择语句。使用if语句可以给出两种操作,根据表达式的结果(非0或0)从中选择出一种操作 if语句有以下两种格式: if(表达式)语句; if(表达式)语句1; else语句2;,上一页,下一页,返回,任务2 选择语句,第一种格式的语法含义是:如果表达式的值非0,则执行if后面的语句,如果表达式的值为0,则没有操作。

7、if语句完成后,继续执行if后面的语句。 执行if语句的过程可用图4-1所示的流程图表示,其中的菱形枢表示判断,矩形枢表示操作处理,带箭头的线表示程序的执行走向。 第二种格式的语法含义是:如果表达式的值非0,则执行if后面的语句1,如果表达式的值为0,则执行else后面的语句2 .if语句完成后,继续执行if后面的语句。如图4-2为if-else语句的流程图。,上一页,下一页,返回,任务2 选择语句,注意:在if语句中,如果分支中包括多条语句,则需要用括起来。如: if(表达式)语句;语句;.。 if(表达式)语句;语句;. else语句;语句;。 例4-3 是if语句的例子。程序的功能是判断

8、键盘输人的整数是否为偶数,若是,则输出 is,否则输出 not 【例4一3】判断整数是否为偶数。 #include void main() int x; cin x;,上一页,下一页,返回,任务2 选择语句,if(x%2=0)cout void main() int x; cin x; cinx;,上一页,下一页,返回,任务2 选择语句,if(x%6=1)cout “is”; else cout “not”; 2. if语句的嵌套 在if语句中又包括有另一个if语句,此种情况就被称之为if语句的嵌套。在有嵌套的if语句中,if语句有不同的嵌套形式。C+规定,else语句总是与它前面最近的if语

9、句配对,从 例4-5给出if-else语句的嵌套形式。程序的功能是,首先从键盘输人一个字符,然后判断字符是否为大写字母或小写字母。若是大写字母,则输出“是大写字母”,若是小写字母,则输出“是小写字母”,若既不是大写字母,也不是小写字母,则输出“是其他字符”。而形成一条完整的if语句.,上一页,下一页,返回,任务2 选择语句,【例4 - 5 】 if-else语句的嵌套形式 #include void main() char c; cin c; if(c=A ,上一页,下一页,返回,任务2 选择语句,例4一6的功能是,判断输人的年号是否是闰年。程序中通过逻辑运算符构成复杂的表达式,避免使用if-

10、else语句的嵌套形式。 【例4-6】判断输人的年号是否是闰年 #include “iostream.h” void main() int year=0; coutyear; if(year%4=0),上一页,下一页,返回,任务2 选择语句,else cout year “ is not leap.n”; 程序运行情况: Enter a year: 2000 2000 is leap.,上一页,下一页,返回,任务2 选择语句,4. 2. 2 switch语句 switch语句是多分支语句。虽然多分支if语句也可以实现多分支结构,但当需要判断的条件较多时,程序显得过于冗长,而且可读性差。在C+中

11、,使用switch语句可以更方便、更简洁地实现多分支结构。switch语句的一般形式为: switch(表达式) case常数1:语句1 ;break; case常数2;语句2 ; break ; case常数n:语句n ; break ; default:语句n+1; ,上一页,下一页,返回,任务2 选择语句,switch语句的执行过程如下。 (1)计算switch语句后面的表达式的值,当表达式的值与某一个ca、后面的常量的值相等时,就执行此case后面的语句,若所有的case中的常量的值都没有与表达式的值匹配的,就执行default后面的语句,当没有default语句时,则什么都不执行。

12、(2)执行完一个case后面的语句后,程序执行的流程转移到下一个ca、继续执行“ case常数”只是起语句标号作用,并不是在该处进行条件判断。在执行*witch语句时,根据switch后面表达式的值找到匹配的人口标号,就从此标号开始执行下去,不再进行判断。只有当遇到break语句或执行完全部switch内的语句时才跳出switch语句。,上一页,下一页,返回,任务2 选择语句,【4-7】 输入学生的成绩score,按分数输出其等级:score90为优,90score 80为良,80score 70为中等,70score 60为及格,score void main() float score;

13、int a ; cout score; a=score/10;,上一页,下一页,返回,任务2 选择语句,switch(a) case 10: case 9:cout“Excellent!”;break; case 8:cout“Good!”;break; case 7:cout“Right!”;break; case 6:cout“Pass!”;break; default: cout“Failed!”; ,上一页,下一页,返回,任务2 选择语句,需要注意以下几方面。 (1)常数1常数n必须互不相同,且每一常数后面要有冒号“:”。 (2)各case子句和default子句的次序可任意。 (3)

14、语句1一语句n+1可以为复合语句 (4)在switch语句中出现的break语句并不是必需的,这要根据程序的需要来决定,在这里,break语句的作用是跳出switch语句。 (5)各case子句后面必须是常数,而不能是变量或表达式。,上一页,返回,任务3 循环语句,C+可使用三种循环语句:while循环、for循环和,do-while循环。 4. 3. 1 while循环语句 while语句的形式如下: while() 语义是当表达式为真时重复执行语句,直到表达式为假时停止执行。下面结合例子看一下while循环语句的执行顺序。 【例4-8】读人若干个学生的成绩,计算他们的平均成绩 #inclu

15、de void main() ,下一页,返回,任务3 循环语句,int sum=0,count=0,gead; cingread; while(gread0) /0表示输入结束 count+; sum+=gread; cingread; if (count0) cout“平均成绩是:”sum/countendl; ,上一页,下一页,返回,任务3 循环语句,这是while的语句形式,其执行示意图为图4-3(a)。 【例4-9】利用do-while语句求115的和. #include void main() int j=1,sum=0; do sum+=j+; while(j16); cout“1

16、15的和是:”sumendl; 图4-3(b)是程序执行的示意图。,上一页,下一页,返回,任务3 循环语句,4.3.2 for循环语句 for语句的一般形式是: for() for语句的执行顺序如图4-4所示。 【例4-10】 for语句的使用。 /求自然数1100的和。 #include “iostream.h” void main() int sum=0;,上一页,下一页,返回,任务3 循环语句,for(int j=1;j=100;j+) sum+=j; cout“sum=”sumendl; 运行结果: sum=5050 在for语句中,for后的括号内有用“;”隔开的3个表达式。第1个表达式的作用是定义一个整型的循环变量J,并将数1赋予此变量;第2个表达式是决定是否进人循环体,其值为布尔值,如果它非0就是布尔变量true,如果是0就是布尔变量false,据此值决定是否进人循环体;第3个表达

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号