- 1
- 0
- 约5.62千字
- 约 10页
- 2018-03-04 发布于浙江
- 举报
[计算机软件及应用]第02章表达式、语句和运算符
第02章表达式、语句和运算符
-2-
本章内容安排
语句
表达式
运算符
if-else语句
-3-
语句
除了预处理编译指令,C++程序由语句构成
语句是以分号结尾的指令。
可以在1行上放置多条语句(必须要以分号结束),但通常只在1行上放1条语句。
语句控制程序的执行流程、计算表达式、也可以什么也不干(空语句)。
x = a + b;
-4-
空白
C++源代码中,空格、制表符和换行符统称为空白,空白是为了方便程序员阅读代码,编译器忽略空白。
下面的3条语句等价
x=a+b;
x = a + b ;
x =
a+b;
编译器忽略空白,但标识符中间不能包含空格。
用于代码缩进的制表符和空格属于空白,良好和一致的缩进
有助于识别程序块和函数的开始和结束。
-5-
复合语句
将多条语句组合起来,放在{ }内,构成复合语句。
复合语句作为1个整体,可用于任何需要单条语句的地方。
函数体就是1个复合语句。
{
temp = a;
a = b;
b = temp;
}
-6-
本章内容安排
语句
表达式
运算符
if-else语句
-7-
表达式
C++中任何一个计算值的操作都可以称为表达式,表达式总能返回一个值(计算结果)。
y + 13
z = x =y+13;
假设y的值为20,表达式计算y与13的和,返回计算结果33。
表达式y+13,计算y和13的和,返回值为33。
表达式x=y+13,将33赋值给x,返回值为x(33)。
表达式z=x=y+13,将33赋值给z,返回值为z(33),最后的
返回值被系统丢弃。
-8-
示例
#include iostream
int main()
{
int x=0,y=72,z=0;
std::coutBefore, x: x y: y;
std::cout z: zstd::endl;
z=x=y+13;
std::coutAfter, x: x y: y;
std::cout z: zstd::endl;
return 0;
}
-9-
本章内容安排
语句
表达式
运算符
if-else语句
运算符
运算符是一种能使编译器执行某项操作的符号,如赋值、乘法、加法、除法等。
常用的两类运算符
赋值运算符
数学运算符
-10-
1、赋值运算符
赋值表达式由3个部分构成
左操作数(左值)
赋值运算符(=)
右操作数(右值)
grade = 95;
-11-
赋值运算符将右值保存到左值对应的变量中。
常量或表达式可以作为右值,但不能作为左值。
95=grade;和y+13=x;都是非法的赋值运算。
2、数学运算符
数学运算符有5个
加法:+
减法:-
乘法:*
除法:/
求模运算:%
-12-
C++中没有乘方运算符,其它语言中的乘方运算(x^2),在
C++中表示异或运算。
除法和求模运算的说明
参与除法运算的2个数都为整数时,除法为整数除法,余数被舍弃,21/4的结果为5。
求模运算返回整数除法的余数,21%4的结果为1。
只要参与运算的2个数中有1个浮点数,除法按照常规除法进行,21/4.0的结果为5.25。
-13-
求模运算的2个数必须为整型或字符数据,否则编译器报错。
3、组合运算符
经常需要将一个变量与一个值相加,再将结果写回该变量,正常语句为:
score = score + 10;
C++提供一种简捷的写法,使用+=
score += 10;
类似的自赋值运算符有:-=、*=、/=、%=
-14-
4、递增和递减运算符
C++提供++和--运算符,实现对变量的加1和减1运算,下面3种表达式等价。
score++;
score=score+1;
score+=1;
-15-
前缀和后缀运算符
++和--运算符都可以放在变量的前面或后面,最终都会使变量加1或减1,但执行时机不同。
如果将递增或递减运算符嵌入复杂表达式中,前缀和后缀的差异将表现出来。
int x=5; int x=5;
int sum=++x; int sum=x++;
-16-
前置++先递增x的值(变为6),再将其值赋给sum,最终x
和sum的结果都为6。
后置++先取x的值(为5),赋值给sum,再将其值递增,最终
x为6而sum为5。
运算符优先级
类似数学表达式,C++对复杂表达式,按照运算符优先级决定计算顺序。
每个运算符都有优先级,乘除的优先级高于加减
int x=5+3*8; //x的最终结果为29
int x=(5+3)*8; //x的最终结果为64
-17-
学习编程时,不必要记住所有运算符的优先级,查看表4.1。
对表达式中运算符优先级有疑
您可能关注的文档
- [计算机软件及应用]智能选课系统的开发定稿.doc
- [计算机软件及应用]时间戳服务器.doc
- [计算机软件及应用]最漂亮的PPT背景图片免费下载1.ppt
- [计算机软件及应用]最牛逼的页面处理JS.doc
- [计算机软件及应用]最终毕业论文.doc
- [计算机软件及应用]朗乡林业局职工基本医疗保险网络信息系统方案.doc
- [计算机软件及应用]智能家居高清网络机顶盒.ppt
- [计算机软件及应用]新闻PPT模板.ppt
- [计算机软件及应用]机械制图.ppt
- [计算机软件及应用]某地光伏电站PC招标商务文件PART5.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)