c++语句分类

时间:2024-05-21 12:25:39

语句

空语句

声明语句

表达式语句

  1. 格式:
    表达式;
  2. 表达式语句与表达式的区别:
    表达式可以包含在其他表达式中,而
    语句不可。

例如: if ((a = b) > 0) t = a;
不可写为: if ((a = b;) > 0) t = a;

复合语句

将多个语句用一对大括号包围,
便构成一个复合语句

• 例如
{
sum=sum+i;
i++;
}

选择语句

1. if三种结构
  1. if (表达式) 语句

例: if (x > y) cout << x;

  1. if (表达式) 语句1
    else 语句2

例: if (x > y) cout << x;
else cout << y;

  1. if (表达式1) 语句1
    else if (表达式2) 语句2
    else if (表达式3) 语句3

    else 语句 n
2. 多分支问题
  • if 语句——嵌套
    1. 一般形式
      if( )
      if( ) 语句 1
      else 语句 2
      else
      if( ) 语句 3
      else 语句 4
    2. 注意
      语句 1、 2、 3、 4 可以是复合语句,每层的 if 与 else 配对,或用 { } 来确定层次关系。
  • switch 语句
    c++语句分类
  1. case分支可包含多个语句,且不用{ }。
  2. 表达式、判断值都是int型或char型。
  3. 若干分支执行内容相同可共用一组语句。

循环语句

  1. while循环

    1. 形式
      while (表达式)
      语句
      可以是复合语句,其中必须含有
      改变条件表达式值的语句。
    2. 执行顺序
      先判断表达式的值,若为 true 时,执行语句。
  2. do…while循环

    1. 一般形式
      do 语句
      while (表达式)
      可以是复合语句,其中必须含
      有改变条件表达式值的语句。
    2. 执行顺序
      先执行循环体语句,后判断条件。
      表达式为 true 时,继续执行循环体
    3. 与while语句的比较:
      –while 语句执行顺序
      先判断表达式的值,为true时,再执行语句
  3. for循环

    1. 语法形式
      c++语句分类

跳转语句

  1. break语句
    使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。
  2. continue语句
    结束本次循环,接着判断是否执行下一次循环。

输入与输出

• 向标准输出设备(显示器)输出
例: int x;
cout << “x=” << x;
• 从标准输入设备(键盘)输入
例: int x;
cin >> x;
c++语句分类

自定义数据类型

typedef语句

• 为一个已有的数据类型另外命名
• 语法形式
typedef 已有类型名 新类型名表;

• 例如
typedef double Area;
Area a;

• 不推荐使用,降低可读性

枚举类型–enum

• 只要将需要的变量值一一列举出来,便构成了一个枚举类型。
• 枚举类型的声明形式如下:
enum 枚举类型名 {变量值列表};

• 例如:
enum Weekday
{SUN, MON, TUE, WED, THU, FRI, SAT};

• 枚举类型应用说明:

  1. 对枚举元素按常量处理,不能对它们赋值。例如,不能写: SUN = 0;
  2. 枚举元素具有默认值,它们依次为:0,1,2,…。
  3. 也可以在声明时另行指定枚举元素的值,如:
    enum Weekday {SUN=7,MON=1,TUE,WED,THU,FRI,SAT};
  4. 枚举值可以进行关系运算。
  5. 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换

设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取(CANCEL),编写程序顺序输出这四种情况。c++语句分类

结构体 --> struct

  1. 结构的概念
    –结构是由不同数据类型的数据组成的集合体。
  2. 声明结构类型
    struct 结构名
    {
    数据类型 成员名 1;
    数据类型 成员名 2;

    数据类型 成员名 n;
    };

举例:
struct student //学生信息结构体
{
int num; //学号
char name[20]; //姓名
char sex; //性别
int age; //年龄
float score; //成绩
char addr[30]; //住址
};

  1. 变量说明形式
    结构名 结构变量名;
  2. 注意:
    • 结构变量的存储类型概念、它的寿命、可
      见性及使用范围与普通变量完全一致。
    • 结构变量说明在结构类型声明之后,二者
      也可同时进行。
    • 结构变量占内存大小可用 sizeof 运算求
      出: sizeof(运算量)
  3. 结构体的初始化和使用
    • 初始化
      说明结构变量的同时可以直接设置初值。
    • 使用
      结构体成员的引用形式:
      结构变量名.成员名

    c++语句分类

联合体

  1. 声明形式:
    union 联合名
    {
    数据类型 成员名 1;
    数据类型 成员名 2;

    数据类型 成员名 n;
    };
  2. 联合体类型变量说明的语法形式
    联合名 联合变量名;
  3. 引用形式:
    联合名.成员名

例如:
union uarea
{ char c_data;
short s_data;
long l_data;
}

  1. 无名联合
    • 无名联合没有标记名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。

例:
union
{ int i;
float f;
}
在程序中可以这样使用:
i=10;
f=2.2;

变量工作机制

变量两个重要属性:

  1. 数据类型
    – 任何数据在内存中都是用二进制串的形式表示的;
    – 一串二进制数,只有确定了类型,才有真实的含义;

例: 10111111,10000000,00000000,00000000
•解释为int型: -1,082,130,432
•解释为unsigned型: 3,212,836,864

  1. 变量名
    –源代码中,变量依靠变量名来标识;
    –目标代码中,变量依靠地址来标识,每
    个变量的地址互不相同。
  • 变量的声明
    –将一个标识符声明为变量,告诉编译器这个标识符表示变量,同时还指出了它的数据类型;
    –只有确定了一个变量的数据类型,变量参与的操作才具有完整的意义,编译器才能将该变量参与的表达式翻译为合适的操作。
  • 变量的定义
    –不仅确定了一个标识符表示变量,以及该变量的类型,还确定了变量地址的分配位置。

表达式执行原理

  • 寄存器:
    –CPU内部的存储单元
    –读写速度非常快
    –数量很少
  • 大部分CPU指令都需要读写寄存器。
  • 复杂的表达式,分步执行,每条指令只能做一次基本运算,中间结果暂存在寄存器中。