语句
空语句
声明语句
表达式语句
- 格式:
表达式; - 表达式语句与表达式的区别:
表达式可以包含在其他表达式中,而
语句不可。
例如: if ((a = b) > 0) t = a;
不可写为: if ((a = b;) > 0) t = a;
复合语句
将多个语句用一对大括号包围,
便构成一个复合语句
• 例如
{
sum=sum+i;
i++;
}
选择语句
1. if三种结构
- if (表达式) 语句
例: if (x > y) cout << x;
- if (表达式) 语句1
else 语句2
例: if (x > y) cout << x;
else cout << y;
- if (表达式1) 语句1
else if (表达式2) 语句2
else if (表达式3) 语句3
…
else 语句 n
2. 多分支问题
- if 语句——嵌套
- 一般形式
if( )
if( ) 语句 1
else 语句 2
else
if( ) 语句 3
else 语句 4 - 注意
语句 1、 2、 3、 4 可以是复合语句,每层的 if 与 else 配对,或用 { } 来确定层次关系。
- 一般形式
- switch 语句
- case分支可包含多个语句,且不用{ }。
- 表达式、判断值都是int型或char型。
- 若干分支执行内容相同可共用一组语句。
循环语句
-
while循环
- 形式
while (表达式)
语句
可以是复合语句,其中必须含有
改变条件表达式值的语句。 - 执行顺序
先判断表达式的值,若为 true 时,执行语句。
- 形式
-
do…while循环
- 一般形式
do 语句
while (表达式)
可以是复合语句,其中必须含
有改变条件表达式值的语句。 - 执行顺序
先执行循环体语句,后判断条件。
表达式为 true 时,继续执行循环体 - 与while语句的比较:
–while 语句执行顺序
先判断表达式的值,为true时,再执行语句
- 一般形式
-
for循环
- 语法形式
- 语法形式
跳转语句
- break语句
使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。 - continue语句
结束本次循环,接着判断是否执行下一次循环。
输入与输出
• 向标准输出设备(显示器)输出
例: int x;
cout << “x=” << x;
• 从标准输入设备(键盘)输入
例: int x;
cin >> x;
自定义数据类型
typedef语句
• 为一个已有的数据类型另外命名
• 语法形式
typedef 已有类型名 新类型名表;
• 例如
typedef double Area;
Area a;
• 不推荐使用,降低可读性
枚举类型–enum
• 只要将需要的变量值一一列举出来,便构成了一个枚举类型。
• 枚举类型的声明形式如下:
enum 枚举类型名 {变量值列表};
• 例如:
enum Weekday
{SUN, MON, TUE, WED, THU, FRI, SAT};
• 枚举类型应用说明:
- 对枚举元素按常量处理,不能对它们赋值。例如,不能写: SUN = 0;
- 枚举元素具有默认值,它们依次为:0,1,2,…。
- 也可以在声明时另行指定枚举元素的值,如:
enum Weekday {SUN=7,MON=1,TUE,WED,THU,FRI,SAT}; - 枚举值可以进行关系运算。
- 整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换
设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取(CANCEL),编写程序顺序输出这四种情况。
结构体 --> struct
- 结构的概念
–结构是由不同数据类型的数据组成的集合体。 - 声明结构类型
struct 结构名
{
数据类型 成员名 1;
数据类型 成员名 2;
:
数据类型 成员名 n;
};
举例:
struct student //学生信息结构体
{
int num; //学号
char name[20]; //姓名
char sex; //性别
int age; //年龄
float score; //成绩
char addr[30]; //住址
};
- 变量说明形式
结构名 结构变量名; - 注意:
- 结构变量的存储类型概念、它的寿命、可
见性及使用范围与普通变量完全一致。 - 结构变量说明在结构类型声明之后,二者
也可同时进行。 - 结构变量占内存大小可用 sizeof 运算求
出: sizeof(运算量)
- 结构变量的存储类型概念、它的寿命、可
- 结构体的初始化和使用
- 初始化
说明结构变量的同时可以直接设置初值。 - 使用
结构体成员的引用形式:
结构变量名.成员名
- 初始化
联合体
- 声明形式:
union 联合名
{
数据类型 成员名 1;
数据类型 成员名 2;
:
数据类型 成员名 n;
}; - 联合体类型变量说明的语法形式
联合名 联合变量名; - 引用形式:
联合名.成员名
例如:
union uarea
{ char c_data;
short s_data;
long l_data;
}
- 无名联合
• 无名联合没有标记名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。
例:
union
{ int i;
float f;
}
在程序中可以这样使用:
i=10;
f=2.2;
变量工作机制
变量两个重要属性:
- 数据类型
– 任何数据在内存中都是用二进制串的形式表示的;
– 一串二进制数,只有确定了类型,才有真实的含义;
例: 10111111,10000000,00000000,00000000
•解释为int型: -1,082,130,432
•解释为unsigned型: 3,212,836,864
- 变量名
–源代码中,变量依靠变量名来标识;
–目标代码中,变量依靠地址来标识,每
个变量的地址互不相同。
- 变量的声明
–将一个标识符声明为变量,告诉编译器这个标识符表示变量,同时还指出了它的数据类型;
–只有确定了一个变量的数据类型,变量参与的操作才具有完整的意义,编译器才能将该变量参与的表达式翻译为合适的操作。 - 变量的定义
–不仅确定了一个标识符表示变量,以及该变量的类型,还确定了变量地址的分配位置。
表达式执行原理
- 寄存器:
–CPU内部的存储单元
–读写速度非常快
–数量很少 - 大部分CPU指令都需要读写寄存器。
- 复杂的表达式,分步执行,每条指令只能做一次基本运算,中间结果暂存在寄存器中。