分支语句和逻辑运算符

分支语句和逻辑运算符

           目录

  • if 语句
  • 逻辑表达式
  • 字符函数库cctype
  • switch语句
  • break和continue语句
  • 简单文件输入和输出

一、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和continue语句

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

你可能感兴趣的:(c++,c语言)