跟着c++Primer Plus学编程----第五章 第六版 循环和关系表达式
5.1 for 循环
1、for 循环表达式:
for(a;b;c)
循环体;
//a 可以是语句也可以是表达式;
for(i = 0;i < 5;i++)
body;
i = 0;初始化 i 的值;
i < 5;循环的条件;
i++;
body 为循环体;
2、for 循环的执行步骤:
a. 设置初始值;
b. 执行测试,看看循环是否应当继续执行;
c. 执行循环操作;
d. 更新用于测试的值;
3、使用 for 循环访问字符串:
for 循环提供了一种依次访问字符中的每个字符的方式
4、 副作用和顺序点:
副作用: 在计算机表达式时对某些东西进行修改。
顺序点:程序执行过程中的一个点,在这里,进入下一步之前对所有副作用都进行评估。在 c++ 中,语句中的分号就是一个顺序点,这意味着程序处理下一条语句之前,赋值运算符、递增运算符和递减运算符执行的所有修改都必须完成。
5、 前缀格式和后缀格式:
后缀格式:x++,后缀格式++x;
两种格式选择仍何一种均对程序没有影响,,但执行速度有细微的差别,前缀效率比后缀效率高;
6、 c 风格字符串比较:
在 ASCLL 中,每一个字符都有一个对应的码值,为整形,所以字符串不能直接比较大小,但字符可以;
5.2 while 循环
1、 while 循环表达式:
while (test-condition)
body;
//若括号内表达式为真则执行循环体,直到表达式为假为止;
2、for 与 while:
两者循环本质上是相同的;
3、 设计循环体时的原则:
指定循环终止条件;
在首次测试之前初始化条件;
在条件被再测试之前更新条件;
5.3 do while 循环
1、 do while 循环表达式:
do
body
while (test-expression);
2、 与前两者比较:
前两者均是入口条件循环,后者是出口条件循环;
do while 先执行循环体再判断循环条件;
5.4 基于范围的 for 循环
对(或容器,如:vector、array)数组的每个元素执行相同操作;
5.5 循环和文本输入
cin 在读取 char 时,与读取其他类型一样,cin 将忽略空格和换行符;
cin.get(char) 则不会;
文件尾条件:
检测 EOF: 用成员函数 eof() 和查看 eofbit 是否被设置;若检测到 EOF cin.eof() 返回 true,否则返回 fause;
结束 EOF 输入: 按下按键 Ctrl + Z 结束输入输出;
5.6 嵌套循环和二维数组
1、 二维数组的声明:
int arr[4][5];
2、 二维数组的初始化:
二维数组使用与一维数组类似的格式来初始化数组,即由一系列分隔的一维数组初始化(用花括号括起)组成;