【C++】分支语句与逻辑运算符

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

  1. 头文件cctype中成员函数:
    isalpha()—检查字符是否为字母字符;
    isdigits()—测试字符是否为数字字符;
    ispunct()—测试字符是否为标点符号;
    isspace()—测试字符是否为空白(换行符、空格、制表符)
  2. 条件运算符(?:
    格式:
    expression 1 ? expression 2 : expression 3; //生成一个表达式,是一个值,可将其赋给变量或将其放到一个更大的表达式中。

switch语句

通用格式

switch (integar-expression)
{
    case label 1: statements ; break ;
    case label 2: statements ; break ;
    ……
    default : statements;
}

integar-expression必须是一个结果为整数值的表达式;每个标签都必须是整数常量表达式。

当switch语句将int值和枚举量标签进行比较时,将枚举量提升为int;在while循环测试条件中也会将枚举量提升为int类型。
若选项涉及取值范围、浮点测试或两个变量比较时应使用if-else语句。

breakcontinue语句

break:使程序跳到switch或循环后面的语句处执行。
continue:让程序跳过循环体中余下的代码并开始新一轮循环。

简单文件输入和输出

使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不论数据类型是什么,输入一开始都是字符数据—文本数据,cin对象负责将文本转换为其它类型。控制台输入的文件版本都是文本文件,即每个字节都存储了一个字符编码的文件。

写入到文本文件中

(1)必须包含头文件fstream
(2)需声明一个或多个ofstream变量(对象)
(3)必须指明名称空间std
(4)需将ofsteam对象与文件关联起来。方法之一:使用open()
(5)使用完文件后应使用方法close()将其关闭
(6)可结合使用ofsteam对象和运算符<<来输出各种类型数据
注意:open()接受一个C-风格字符串作为参数,可以是字面字符串,也可以是存储在数组中的字符串。例outFile.open(“data.txt”)。若程序运行之前data.txt文件不存在,则open()将新建一个名为data.txt的文件;若运行之前存在该文件,则将截断该文件,默认将其长度截断为零,即丢弃原有内容,将新的输入加入到该文件中。
close()不需使用文件名作为参数,因为ofsteam对象已同特定的文件关联。

读取文本文件

(1)必须包含头文件fstream
(2)需声明一个或多个ifstream变量(对象)
(3)必须指明名称空间std
(4)需将ifsteam对象与文件关联起来。方法之一:使用open( )
(5)使用完文件后应使用方法close( )将其关闭
(6)可结合使用ifsteam对象和运算符>>来读取各种类型数据
(7)可使用ifstream对象和get( )来读取一个字符,也可与getline( )来读取一行字符。
(8)可结合使用ifstreameof( )fail( )等方法判断输入是否成功。
(9)ifstream对象本身被用作测试条件时,若最后一个读取操作成功,它将被转换为布尔值true,否则为false。
如:

inFile. open(“pra.txt”); //检查文件是否被成功打开:is_open( )
if(!inFile. is_open( ))  //若文件被成功打开,方法is_open( )将返回true
函数说明
exit()在头文件cstdlib中定义,该头文件中还定义了一个用于同操作数系统通信的参数值EXIT_FAILURE,函数exit( )终止程序。
eof()方法用于判断最后一次读取数据时是否遇到EOF,若是则返回true。
good()方法在没有发生任何错误时返回true。
fail()方法用于判断最后一次读取数据时是否遇到类型不匹配情况,若是则返回true。(遇到EOF也返回true)
bad()出现意外问题(文件受损、硬件故障)时返回true。

输出格式

cout<<fixed; //用一般方式输出浮点型(控制台显示大数用科学计数法)
cout. precision(n); //设置精度为n,并返回上一次的设置
cout. setf(ios_base::showpoint); //显示浮点数小数点后面的零

方法调用setf(ios_base::fixed)将对象置于使用定点表示法的模式。
width()设置下一次输出操作使用的字段宽度,这种设置只在显示下一个值时有效,然后将恢复到默认设置(默认字段宽度为零)

输出前置补0、后置补0

int a=7;
cout<<setw(3)<<setfill(0)<<a; //007 只起一次作用

double x=0.12;
cout<<setiosflags(ios::fixed)<<setprecision(4)<<x;//0.1200

保存输出格式设置与恢复

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是存储这种信息所需的数据类型名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhugenmi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值