C++primer plus第六章--分支语句和逻辑运算符
数学中没有真理,即作为现实世界普世法则意义上的真理,算术和几何基本结构的适用性是有限的。----哈哈哈日常思辨,这不是对象的思想么????
1.if 语句
if ( test-conditon【强制转化bool值 】)
statement
从语法上看整个if else结构被视为一条语句。可以放在else后面嵌套。
if
else
if
else
即
if
else if
else
条件运算符: ?: 唯一一个三个操作数运算符 s1 ? e1 : e2 s1为真时为e1值否则e2值
2.逻辑表达式注意点。
优先级:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
同一优先级的运算符,结合次序由结合方向所决定。
参见百科:https://baike.baidu.com/item/%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7/4752611
从左往右结合时:2 < x <4 错误的,2 < x 的值要么为1要么为0,一定比4小,不能完成你想表达的意思。
一个很奇怪的返参:strcmp(s1,s2),s1和s2不同时返回1,相同时返回0;
字符函数库cctype,实用性强。
3.switch语句
程序跳到指定位置,不加break会一直执行后面语句。和数值相比,字符输入更加兼容(default的好处).
常常将枚举量作为标签,限制范围,和for的c++11形式相似哦。
cin无法识别枚举变量一般输入整数,将枚举量提升为整数,cout输出枚举变量的整数值。注意switch不能处理浮点测试
4.读取数字循环
用户输入非数字时提醒读取错误,注意输入还在缓冲中,未读取。
应采取以下步骤:
注意cin>>a[1];实际上是cin方法函数调用,函数返回cin
- 重置cin以接受输入。
- 删除错误输入。 例如while(cin.get()!='\n') continue;
- 提醒用户再输入
5.简单文件输入输出。
使用cin进行输入时,程序将输入视为一系列字节,其中每个字节被解释为字符编码,不管目标数据类型是什么,输入一开始都是文本数据,cin对象负责将文本转化为其它类型。
cstdlib 定义了exit();如exit(EXIT_FAILURE)
文件I/O和控制台I/O及其相似,但需要自己定义对象并关联文件。
读取失败原因(good()返回false)排查,eof(),bad(),fail().