本篇文章将对《C++PrimerPlus》第3章进行勾画
以我个人习惯来勾画
C和C++不同点将用红色高亮表示
关于C++的额外补充知识用蓝色高亮表示
对C++的注意点以及总结部分用绿色高亮表示
正常情况本专栏2周更新一次
文章目录
- 6.1 if语句![在这里插入图片描述](https://img-blog.csdnimg.cn/853e6175c47541ca9c8ed8b3fa47b935.png)
- 6.1.1 if else语句
- 6.1.2 格式化if else语句
- 6.1.3 if else if else结构
- 6.2 逻辑表达式
- 6.2.1 ||运算符
- 6.2.2 &&运算符
- 6.2.3 &&设置取值范围
- 6.2.4 !运算符
- 6.2.5 逻辑运算符细节
- 6.2.6 其他表示方式
- 6.3 字符串函数cctype
- 6.4 ?:运算符
- 6.5 switch语句
- 6.5.1 将枚举常量用作标签
- 6.5.2 switch和if else
- 6.6 break和continue语句
- 6.7 读取数字的循环
- 6.8 简单的文件输出/输出
- 6.8.1 文本I/O和文本文件![在这里插入图片描述](https://img-blog.csdnimg.cn/d0ff7392243449c4ac14f44d1a5b194c.png)
- 6.8.2 写入到文本文件中
- 6.8.3 读取文本文件
- 在这里插入图片描述
- 6.9 总结
6.1 if语句
- if语句的测试部分结果发被强制转换为bool类型
- if 语句中测试部分为true执行表达式,测试部分为false,不执行表达式
- 整个if语句被当成一条语句
6.1.1 if else语句
- 对于C++来说
char
+int
的类型为int
,++char
的类型仍然为char
6.1.2 格式化if else语句
- else语句上面一条语句必须是if语句,else语句不能单独出现
6.1.3 if else if else结构
- 为计算机程序提供两种以上的选择时可以使用if else if else语句
- if else if else 语句并不是一种新的结构,只是其中一个 if else嵌套在另一个else语句中
- if语句中的条件判断不要将==写成=
6.2 逻辑表达式
6.2.1 ||运算符
||
运算符是一个顺序点- 规定
||
运算符先计算左子式,如果左子式为true,则表达式的结果直接为true,不会计算右子式,否则再计算右子式
6.2.2 &&运算符
&&
运算符是一个顺序点- 规定
&&
运算符先计算左子式,如果为false表达式的结果直接为false,否则再计算右子式
6.2.3 &&设置取值范围
6.2.4 !运算符
- !运算符将它后面的表达式的真值取反
6.2.5 逻辑运算符细节
- !运算符的优先级高于所有的关系运算和算术运算
- &&运算符的优先级高于||
- 计算逻辑表达式时从左往右计算,知道了结果就会立马停止
6.2.6 其他表示方式
6.3 字符串函数cctype
- 使用cctype头文件中的函数可以方便我们对字符的判断
6.4 ?:运算符
- 使用条件运算符有时可以使代码更加简洁
- 代码复杂时,建议使用if else语句
6.5 switch语句
switch
语句是选择语句的一种,当程序执行到switch语句时,程序将跳到使用integer-expression
的值标记的那一行integer-expression
必须是一个结果为整数的表达式- 每个标签必须是整形常量表达式
- C++中的case是
行标签
不是选项标签,程序需要break语句来确保只执行switch语句中的特定部分
6.5.1 将枚举常量用作标签
switch
语句将int值和枚举标签比较时,会将枚举提升为int型,while
循环测试条件中,也会将枚举提升为int型
6.5.2 switch和if else
- switch语句适合多个点判断,if else适合进行浮点数和范围判断
6.6 break和continue语句
- break用来跳出switch语句或者循环体,continue只能用于跳过本次循环
- continue语句用于for循环和while循环可能会有差别
- C++支持goto语句,
goto pairs;
会跳到使用pairs:作为标签的位置
6.7 读取数字的循环
- 当cin发生类型不匹配时,将发生4种情况
- n的值保持不变
- 不匹配的输入将留在输入队列中
- cin对象中的一个错误标记被设置
- 对cin方法的调用将返回false(如果被转换为bool类型)
- 设置了错误标记后必须重置该标记才可以继续输入,clear()方法重置错误输出标记,同时也重置文件尾