C++ Primer Plus:第五章 - 循环和关系表达式

0、本章内容:

for循环。

表达式和语句。

递增运算符和递减运算符:++和–。

组合赋值运算符。

复合语句(语句块)。

逗号运算符。

关系运算符:>、>=、==、<=、<和!=。

while循环。

typedef工具。

do while循环。

字符输入方法get()。

文件尾条件。

嵌套循环和二维数组。

1、for循环:

1.1 for循环的组成部分

初始化、测试、更新。
测试结果被转化为true或者false。

1.2 回到for循环

1.3 修改步长

i = i + by;

检测不等通常比检测相等要好。

1.4 使用for循环访问字符串

1.5 递增运算符(++)和递减运算符(–)

不要在同一个语句中对同一值多次使用递增递减运算符。

1.6 副作用和顺序点

副作用指的是在计算表达式时对某些东西进行了修改;顺序点是程序执行过程中的一个点。

1.7 前缀格式和后缀格式

前缀效率更高,因为后缀会复制一个副本,将其加1后返回。

1.8 递增/递减运算符和指针

后缀的优先级更高,指针和前缀的优先级相同。

1.9 组合赋值运算符

+= 、 -= 、 *= 、 /= 、 %=。

1.10 复合语句(语句块)

C++的编译器会忽略缩进。

在代码块中,代码块外和代码块中的变量同名时,外部变量暂时被隐藏。

1.11 逗号运算符

逗号运算符对表达式完成同样的任务,允许将两个表达式放到C++语法只允许放一个表达式的地方。

在for循环内部声明临时变量,效率低但是省内存。

使用逗号表达式时注意运算符的优先顺序。

1.12 关系表达式

关系元素符的优先级低于算术运算符。

1.13 赋值、比较和可能犯的错误

注意测试条件,不要发生死循环。

1.14 C-风格字符串的比较

数组名是数组的地址,比较变量实际值是否等同用strcmp()函数。

1.15 比较string字符串

string字符串更加简单和直观。

2、while循环:

空字符的编码为0。

2.1 for与while

几乎等效,都是入口判断类型。

2.2 等待一段时间:编写延时循环

clock_t delay = secs * CLOCKS_PER_SEC;

#define BYTE char
typedef char BYTE
typedef 比 #define 好用,因为前者在对多指针初始化时不会出错。

3、do while循环:

出口条件,必须首先执行循环体。

4、基于范围的for循环(C++11)

for (double x : prices)

for (int x : {1,2,3,4,5})

5、循环和文本输入:

5.1 使用原始的cin进行输入

遇到空格仍会读取,但是不会回显,也不会被计入。

5.2 使用cin.get(char)进行补救

cin.get()为引用类型,可以修改参数值。

5.3 是用哪一个cin.get()

5.4 文件尾条件

EOF:ctrl+Z

while (cin.fail() == false)

5.5 另一个cin.get()版本

用cin.get()代替cin.get(char),用cout.put()代替cout,用EOF测试代替cin.fail()测试。

在输入到达EOF时,cin.get(ch)返回false,ch=cin.get()返回EOF。

6、嵌套循环和二维数组:

6.1 初始化二维数组

创建二维数组时,可以初始化其所有元素,可以用逗号分隔的用花括号括起的值列表。

6.2 使用二维数组

for二重循环读取。

7、总结:

null。

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页