For循环
循环组成部分完成步骤:
- 设置初始值
- 执行测试,判断循环是否能执行
- 执行循环操作
- 更新用于测试的值
方法:
# for(initialization; test-expression; update-expression) { body }
Initialization:初始值
test-expression:测试表达式——这个表达式是关系式
update-expression:更新表达式
for循环有无括号区别:
如果没有括号,则只执行 cout << i << endl ;
While循环
for与while的区别:
- for在循环中省略了测试条件时,将认为条件为true
- for在循环中可以初始化一个局部变量
- continue的区别:
使用习惯:
for 常用于循环计数(已知循环次数)
while 无法预知循环次数
编写延迟循环
意义:避免错过重要信息、无法恢复消息
问题:当计算机处理器的速度发生变化时,必须修改计数限制
Eg_1 :
问题解决:让系统时钟来完成这种工作
方法:使用库函数 clock( ) , 返回程序开始执行后所用的系统时间
存在问题:①返回时间单位不一定是秒 ②在不同系统可能类型不同
解决问题:CLOCKS_PER_SEC 这是一个符号常量,该常量等于每秒钟包含的系统时间单位数。因此,乘或除以这个值都将得到以系统时间单位为单位的时间
Eg_2 :
do while
格式:
do
body
while(条件)
先执行后判断
基于范围的for循环(c++11)
示例:
修改数组元素(用到了引用)
符号 & 表明 x 是一个引用变量
循环和文本输入
使用cin输入 —— 不会读取空格
哨兵字符:选取一种特定的字符,将其作为停止的标志
使用cin.get(name) —— 可以读取空格 只适用于char 而不适合string
文件尾文件
- 结束输入
- Cin.clear() 方法可以清除EOF标记,使输入继续进行。
- 在有些系统中,按住 Ctrl + Z 实际上将结束输入和输出,而cin.clear() 将无法恢复输入和输出
- 常见的字符输入做法
- While(cin.fail() == false)
- While ( !cin.fail() )
- While ( cin ) 更加通用
- While ( ch = cin.get( ) != EOF )
另外一种 cin.get() 版本
// ch = cin.get( ) ;
// cout.put(ch) ;
嵌套循环和二维数组
两个 for 循环搞定!
拓展
副作用(side-effect):在计算表达式时对某些东西(如存储在变量中的值)进行了修改。
顺序点:程序执行过程中的一个点,在这里,进入下一步之前将确认对所有的副作用进行评估。C++中分号就是一个顺序点。
前缀格式(++x)比后缀格式(x++)更有效率
内外部语句有相同变量:如果在外部输出,则输出外部变量
类型别名:
1、#define other_name Type_name
2、typedef Type_name other_name
二者区别: typedef 能为更多变量取名字,而#define只能为一个变量取名字