第六章
6.1 if 语句
if (test-condition)
statement
if else 语句
if (test-condition)
statement1
else
statement2
格式化if else语句
使用{}
if else if else
6.2 逻辑表达式
&&、||、!
&&
如果左侧为false, 整个表达式必定为false, 将不会对右侧进行判定
|| 同理, 如果左侧为true, 整个表达式必定为true, 将不会对右侧进行判定
使用&&来确定取值范围
!
其他表示方式
6.3 字符函数库 cctype
6.4 ?:运算符
唯一一个三目运算符, 可以用来替换if else
通用格式
expression1 ? expression2 : expression3;
可以将一个条件表达式嵌入到另一个条件表达式中
6.5 switch 语句
通用格式
switch (integer-expression)
{
case lable1 : statement(s)
case lable2 : statement(s)
... ...
default : statement(s)
}
使用枚举量用作标签
switch 和 if else
当选项超过两个时, switch 效率更高
6.6 break 和 continue 语句
6.7 读取数字的循环
int n;
cin >> n;
当用户输入一个非整数时:
1.n的值保持不变
2.不匹配的输入将会留在输入队列中
3.cin对象中的一个错误标记被设置
4.对cin方法的调用将会返回false(如果被转换位bool类型)
使用cin.clear方法重置错误输入标记, 输入错误和EOF都将导致cin返回false, 第17章将会讨论区分两种情况
当出现错误输入时, 处理顺序为:
1.重置cin以接受新的输入
2.删除错误输入
3.提示用户再次输入
for (int i = 0; i < Max; i++)
{
cout << "round#" << i + 1 << ":";
while (!(cin >> golf[i]))
{
cin.clear(); // 清除错误输入
while (cin.get() != '\n')
{
continue; // 清除错误输入
}
cout << "Please enter a number:"; // 提示用户再次输入
}
}
6.8 简单的文件输入输出
第十七章将更详细地讨论
文本I/O和文本文件
cin读取char、int、double类型、char类型数组
文本文件:每个字节都储存了一个字符编码的文件
写入到文本文件中
头文件: 命名空间:std 类:ostream 变量:cout
头文件: 命名空间:std 类:ofstream
当将 ofstream 变量和文本文件关联后, 可以像使用 cout 一样使用(所有的方法)
读取文本文件
头文件: 命名空间:std 类:istream 变量:cin
头文件: 命名空间:std 类:ifstream
当将 fstrea 变量和文本文件关联后, 可以像使用 cin 一样使用(所有的方法)
可以使用eof()、fail()等方法判断是否输入成功
如果试图打开不存在的文件进行输入:
inFlie.open("bowling.txt");
if (!inFile.is_open())
{
exit(EXIT_FAILURE);
}