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,实用性强。

C++primer plus第六章--分支语句和逻辑运算符

3.switch语句

程序跳到指定位置,不加break会一直执行后面语句。和数值相比,字符输入更加兼容(default的好处).

常常将枚举量作为标签,限制范围,和for的c++11形式相似哦。

cin无法识别枚举变量一般输入整数,将枚举量提升为整数,cout输出枚举变量的整数值。注意switch不能处理浮点测试

4.读取数字循环

用户输入非数字时提醒读取错误,注意输入还在缓冲中,未读取。

应采取以下步骤:

注意cin>>a[1];实际上是cin方法函数调用,函数返回cin 

  1. 重置cin以接受输入。
  2. 删除错误输入。     例如while(cin.get()!='\n') continue;
  3. 提醒用户再输入  

 5.简单文件输入输出。

使用cin进行输入时,程序将输入视为一系列字节,其中每个字节被解释为字符编码,不管目标数据类型是什么,输入一开始都是文本数据,cin对象负责将文本转化为其它类型。

cstdlib 定义了exit();如exit(EXIT_FAILURE) 

文件I/O和控制台I/O及其相似,但需要自己定义对象并关联文件。

读取失败原因(good()返回false)排查,eof(),bad(),fail().