分支语句和逻辑运算符
目录
一、if语句
if测试条件将被强制转换为bool值:0被转换为false,非零转换为true
1.if else语句
格式:
if(test-condition)
statement1;
else
statement2;
C++是自由格式语言,只要使用大括号将语句括起,对大括号的位置无限制。
2.if else if else结构
可将更直观的表达式variable==value反转为value==variable,以此来捕获将相等运算符误写为赋值运算符的错误。
eg: 赋值:if(x = 3) 错误:if(3 = x)
正确:if(3 ==x)
即,编写让编译器能够发现错误的代码,比找出导致更难理解的错误的原因要容易的多。
二、逻辑运算符
1.逻辑or运算符:|| --有true就true
||是个顺序点,运算符左边的子表达式先于右边的子表达式;若左侧表达式为true,则不会去判定右侧表达式。
2.逻辑and运算符:&&--都为true时才为true
在使用取值范围测试时,应确保取值范围之间既没有缝隙也没有重叠。
3.逻辑not运算符:!
将其后面的表达式的真值取反
4.运算符优先级 !> && > ||
注意要用括号将测试进行分组,and、or、not都是C++保留字。
三、字符函数库cctype
头文件cctype中成员函数:
isalpha( )—检查字符是否为字母字符;
isdigits( )—测试字符是否为数字字符;
ispunct( )—测试字符是否为标点符号;
isspace( )—测试字符是否为空白(换行符、空格、制表符)
条件运算符(?:),格式:
expression 1 ? expression 2 : expression 3; //生成一个表达式,是一个值,可将其赋给变量或将其放到一个更大的表达式中。
四、switch语句
1.通用格式
switch (integar-expression)
{
case label 1: statements ; break ;
case label 2: statements ; break ;
……
default : statements;
}
integar-expression必须是一个结果为整数值的表达式;每个标签都必须是整数常量表达式。
2.当switch语句将int值和枚举量标签进行比较时,将枚举量提升为int;在while循环测试条件中也会将枚举量提升为int类型。
若选项涉及取值范围、浮点测试或两个变量比较时应使用if-else语句。
break:使程序跳到switch或循环后面的语句处执行。
continue:让程序跳过循环体中余下的代码并开始新一轮循环。
五、简单文件输入和输出
1.使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不论数据类型是什么,输入一开始都是字符数据—文本数据,cin对象负责将文本转换为其它类型。
控制台输入的文件版本都是文本文件,即每个字节都存储了一个字符编码的文件。、
2.写入到文本文件中:
a. 必须包含头文件fstream
b. 需声明一个或多个ofstream变量(对象)
c. 必须指明名称空间std
d. 需将ofsteam对象与文件关联起来。方法之一:使用open( )
e. 使用完文件后应使用方法close( )将其关闭
f. 可结合使用ofsteam对象和运算符<<来输出各种类型数据
注意:open( )接受一个C-风格字符串作为参数,可以是字面字符串,也可以是存储在数组中的字符串。例outFile.open(“data.txt”)。若程序运行之前data.txt文件不存在,则open( )将新建一个名为data.txt的文件;若运行之前存在该文件,则将截断该文件,默认将其长度截断为零,即丢弃原有内容,将新的输入加入到该文件中。close( )不需使用文件名作为参数,因为ofsteam对象已同特定的文件关联。
3.读取文本文件:
a.必须包含头文件fstream
b.需声明一个或多个ifstream变量(对象)
c.必须指明名称空间std
d.需将ifsteam对象与文件关联起来。方法之一:使用open( )
e.使用完文件后应使用方法close( )将其关闭
f.可结合使用ifsteam对象和运算符>>来读取各种类型数据
g.可使用ifstream对象和get( )来读取一个字符,也可与getline( )来读取一行字符。
h.可结合使用ifstream和eof( )、fail( )等方法判断输入是否成功。
i.ifstream对象本身被用作测试条件时,若最后一个读取操作成功,它将被转换为布尔值true,否则为false。
如:
inFile. open(“pra.txt”); //检查文件是否被成功打开:is_open( )
if(!inFile. is_open( )) //若文件被成功打开,方法is_open( )将返回true
4.exit(EXIT_FAILURE);
exit( )在头文件cstdlib中定义,该头文件中还定义了一个用于同操作数系统通信的参数值EXIT_FAILURE。函数exit( )终止程序。
eof( )方法用于判断最后一次读取数据时是否遇到EOF,若是则返回true。
good( )方法在没有发生任何错误时返回true。
fail( )方法用于判断最后一次读取数据时是否遇到类型不匹配情况,若是则返回true。(遇到EOF也返回true)
bad( )出现意外问题(文件受损、硬件故障)时返回true。
5.输出格式
cout< cout. precision(n); //设置精度为n,并返回上一次的设置 cout. setf(ios_base::showpoint); //显示浮点数小数点后面的零 方法调用setf(ios_base::fixed)将对象置于使用定点表示法的模式。 width( )设置下一次输出操作使用的字段宽度,这种设置只在显示下一个值时有效,然后将恢复到默认设置(默认字段宽度为零) ios_base::fmtflags initial ; initial = cout. setf(ios_base::fixed); //save initial formatting state …… cout.setf(initial); //restore initial formatting state 方法setf( )返回调用它之前有效的所有格式化设置,ios_base::fmtflags是存储这种信息所需的数据类型名称。