目录
第六章. 分支语句和逻辑运算符
1. if 语句
没啥
2. 逻辑表达式
C++ 有个顺序点的概念,像逗号运算符、逻辑运算符都是从左到右的顺序,四则运算的时候,像3*4+5*6的时候,可能会先算5*6.。17 < age < 35这种情况,先比较 17 < age,它的值要么是 TRUE 要么是 FALSE,即0或者1,因此一定小于35,所以这么写一定是true。
逻辑“与”(&&)和“或”(||)的优先级小于关系运算符,而逻辑“非”(!)的优先级高于关系运算符和算术运算符,因此在使用“非”(!)的时候,注意括号的使用。
逻辑“与”(&&)的优先级高于“或”(||),一起使用的时候同样注意括号。
运算符 | 另一种表示方式 |
&& | and |
|| | or |
! | not |
3. 字符函数库cctype
标准库的一些函数
4. ?:运算符
通用格式:
expression1 ? expression2 : expression3
expression1 为真,整个表达式的值为expression2,否则为expression3。
const char x[2][20] = {"Jason", "at your service\n"};
const char * y = "Quillstone ";
for (int i = 0; i < 3; i++}
{
cout << ((i < 2) ? !i ? x[i] : y : x[1]);
}
// 先计算 !i ? x[i] : y
5. switch 语句
swtich的参数必须是整数值的表达式(包括 char),case的标签也是一样,且是常量。如果没有 default 且 switch 的参数没有匹配的 case ,则跳过 switch 语句。
选项超过两个,相较于 if else 语句,switch 执行速度效率更高。
6. break 和 continue 语句
break 跳过循环或者 switch 语句剩下的部分, continue 语句用于循环中,跳过剩下的语句,开始新一轮的循环。
7. 读取数字的循环
cin.clear()当 cin 为 false 时,重置输入,不然输入会停滞。
8. 简单文件输入/输出
cin 进行输入时,将输入看做字符,根据输入的变量类型将字符转换成对应的量。cout 与 cin 正好反过来,将变量的值转换成字符输出出来。
文件输入输出也需要特定的头文件 <fstream>,使用 std :: 或 using 使用 fstream 中的元素,与 cin、cout 类似的性质。不过 fstream 的 ifstream 和 ofstream 的对象需要声明出来。
ifstream inFile;
ofstream outFile;
ofstream 的对象调用 open 函数时,打开已有的文件并默认删除该文件的内容,文件处理完成后,调用 close 函数关闭文件。
cout << std::fixed; // 用一般的形式表示浮点数,不是科学计数法
打开文件是否失败,可以用下面方法测试:
inFile.open("bowl.txt");
if (!inFile.is_open()){ // is_open判断函数是否正确打开
exit(EXIT_FAILURE);
}
EXIT_FAILURE 和 exit() 定义在头文件 cstdlib 中,该函数终止程序。输入或输出的文件要包含路径,默认在程序的文件夹内。
good 方法检查 ifstream 对象是否正常,eof 方法检查是否读到文件尾,bad 方法检查输入与想要的类型是否匹配,如果返回 true ,输入会停止,需要 clear 来清除。