---
config:
look: handDrawn
themeVariables:
fontSize: 28px
---
mindmap
Root(变量)
变量名:标识符
类型:数据类型
值:存储的数据
地址:内存中的位置
作用域:变量的可见范围
生存周期:变量的有效时间
《计算机程序设计》
计算机学院计算机研究所编译系统研究室
~/course~/course/main.cppmain.cpp,随堂编程练习的代码请直接在此文件中编辑测一测
C++中没有逻辑异或运算符,请问下列程序是否可以通过编译?如果可以,输出是什么?
编程求解
输入一个百分制成绩,输出对应的分等级的五分制成绩,例如:输入88,输出“B”
学习目标
运用本次课所学内容,采用不同的选择结构实现分制转换问题!
;作为语句结束符
{}括起的复合语句块不需要分号helloworld.cpp
$ g++ helloworld.cpp
helloworld.cpp: In function ‘int main()’:
helloworld.cpp:5:27: error: expected ‘;’ before ‘return’
5 | cout << "Hello world!\n"
| ^
| ;
6 | return 0;
| ~~~~~~
温馨提示
编译器错误信息是解决编译错误最重要的线索
程序结构定理(Böhm-Jacopini定理)
任何程序都可以由顺序结构、选择结构、循环结构组合而成
— Corrado Böhm and Giuseppe Jacopini, 1966
goto语句:无条件跳转到指定标签位置break语句:跳出当前循环/选择结构continue语句:跳过当前循环的剩余部分return语句:返回函数调用点goto语句goto语句用于无条件跳转到指定标签位置if (a > 0)
goto positive;
goto end;
positive: // label
cout << "Positive\n";
end: // label
return 0;goto语句,灵活、强大,但抽象层次较低,会导致程序的可读性和可维护性降低名人名言
Goto Statement Considered Harmful!
— Edsger W. Dijkstra, 1968
Edsger W. Dijkstra,荷兰计算机科学家,1972年图灵奖、1980年IEEE计算机先驱奖获得者,他对整个计算机科学学科的贡献广泛而深远,被认为是计算机科学领域的奠基人之一。

考考你
汇编程序中的程序流程控制是结构化控制还是非结构化控制?
测一测
下列语句,哪些是合法的C++表达式语句?
const int a = 1;a = a + 1;cout << "Hello world!\n"d = sin(f);顺序结构案例
{}括起来的多条语句组成,也称语句块
}后不需要分号考考你
若上述程序中第7行末尾加上分号,是否会发生编译错误?试一试!
---
config:
look: handDrawn
themeVariables:
fontSize: 28px
---
mindmap
Root(变量)
变量名:标识符
类型:数据类型
值:存储的数据
地址:内存中的位置
作用域:变量的可见范围
生存周期:变量的有效时间
测一测
下面的代码片段,存在问题的是?
编程求解
书写一个复合语句,实现变量定义、输入提示、读入百分制成绩、输出用户输入的百分制成绩
输入一个百分制成绩,输出对应的分等级的五分制成绩,例如:输入92,输出“92”
运行结果示例:
if语句:根据布尔表达式条件执行语句switch语句:根据整型(或兼容整型)表达式的值选择执行语句if语句的三种形式if语句语法要点
if后的条件表达式必须使用圆括号括起来if与else后的语句块必须是单条语句考考你
if语句的三种形式和Python中对应语法结构的区别?测一测
下列两个程序输出结果有何不同?
明察秋毫
Python依靠缩进界定代码块的边界,而C++中缩进、换行等编程风格的目的是提升程序可读性,对程序语义无影响
大千世界
测一测
下列两个程序分别输出什么结果?
明察秋毫
else总是与最近的没有匹配else的if匹配,称为最近匹配规则教员箴言
安全且优美:即使只有一个语句,也使用花括号!
if语句可以使用嵌套if语句替代温馨提示
两者的选择取决于代码的可读性和逻辑结构,在逻辑清晰的情况下,级联if语句更易读
考考你
阅读下列程序,解释其功能
考考你
请使用if语句完成分制转换问题
输入一个百分制成绩,输出对应的分等级的五分制成绩,例如:输入88,输出“B”
case,可使用break语句跳出整个switch结构避坑
使用break打破穿透的用法才是switch语句的惯用法——不要忘记break!
default分支default分支可以出现在switch结构的任意位置,但通常放在最后default分支缺失,v不匹配任何case时,switch结构不执行任何语句switch与级联ifbreak的switch结构可表示为级联if结构
switch结构更加清晰switch语句的限制switch的条件表达式与case标签必须是整型或兼容整型的类型
考考你
根据浮点数的值选择执行不同的语句,能否通过switch语句实现?
switch语句练习考考你
能否使用switch语句完成分制转换问题?
输入一个百分制成绩,输出对应的分等级的五分制成绩,例如:输入88,输出“B”
---
config:
look: handDrawn
themeVariables:
fontSize: 20px
---
mindmap
控制结构(1)
顺序结构
变量作用域
语句
声明语句
执行性语句
表达式语句
控制语句
复合语句
选择语句
循环语句
跳转语句
选择结构
if语句
if-then型
if-then-else型
if-then-else-if型
switch语句
穿透与break
与级联if的比较
学习目标
计算机程序设计
