02.程序控制结构

结构化程序设计基础

程序的控制结构(黑箱)

单入口单出口的控制结构易于理解

三种基本控制结构

顺序结构

由一组顺序执行的处理块组成,每个处理块可能包含一条或一组语句,完成一项任务。是最基本的算法结构。

分支结构

根据某一条件的判断结果,确定程序的流程,即选择哪一个程序分支中的处理块去执行。最基本的分支结构是二路分支结构

循环结构

根据某一条件的判断结果,反复执行某一处理块的过程。最基本的循环结构是当型循环。

复杂控制结构

控制结构可以嵌套,以构成更复杂的控制结构

布尔数据

枚举类型

枚举类型的声明

格式:enum 枚举名 {元素名1,元素名2,...,元素名n};

例:enum MONTH{JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC};

枚举类型声明中的元素为枚举文字,不是变量

枚举类型变量的定义

例:MONTH month;

枚举类型的意义

将多个文字组织在一起,表达从属于特定类型的性质

用户自定义类型

自定义类型的格式

格式:typedef 原类型标识 新类型名;

例1:typedef int DWORD;

自定义类型的性质

新类型与愿类型相同,并未产生新类型,重新命名的自定义类型使程序更易理解

若整数可以用来表示两类不同数据对象,使用自定义类型可以区分它们

自定义类型不是简单的类型替换,虽然它们确实等同

布尔类型

bool类型

取值:false、true

bool量的定义

定义:bool modified;

赋值:modified = true;

涉及到操作符的优先级:优先级从高到低排序

逻辑非"!";小于"<"、不小于">="、大于">"、不大于"<="(同级);等于"="、不等于"!="(同级);逻辑与;逻辑或"||"

if分支结构

if分支结构的三种格式

格式一:if(条件表达式) {语句序列}

格式二:if(条件表达式) {语句序列1} else {语句序列2}

格式三:if(条件表达式1) {语句序列1} else if(条件表达式2) {语句序列2} ... else {语句序列n}

switch分支结构

格式:

switch(表达式)

{

case 常数表达式1: 语句序列1

case 常数表达式2: 语句序列2

.

.

.

case 常数表达式n: 语句序列n

default:默认语句序列

}

计算过程

先计算表达式的值,依次与常数表达式比较,若相同则执行该分支(字句),否则转向default分支,最后退出switch语句

特别说明

switch后面的表达式必须为整型、字符型或枚举型;case后面必须为常量表达式,且各个case的值必须不同;若无default分支,且无匹配的case分支,则不执行;case分支中的语句可以有多条,不需要花括号

break语句的目的:终止switch语句的执行。如果没有break语句,则程序会从指定的case分支开始,并在该分支结束后继续执行下去,除非switch语句结束,后面的其他case分支或default分支中的语句都会得到执行。原因是case字句中的常数表达式仅起到语句标号的作用,不是分支之间的分隔标记,case只起到了什么情况开始进入switch分支语句的作用。

while循环结构

while循环格式

while (表达式) 循环体

while循环执行流程

先判断后执行:表达式为真时,执行一遍循环体(迭代一次),返回重新计算表达式的值以确定是否重复执行循环体;若表达式为假,则终止循环。为保证循环终止,循环体内应有能改变表达式值的语句。

for循环结构

递增递减表达式优先级非常高

前缀递增递减

格式:++变量名称;--变量名称;

计算要诀:先递增递减,再参与运算

例:设a为1,b=++a*3等价于a=a+1;b=a*3;

a结果为2,b结果为6

后缀递增递减

格式:变量名称++;变量名称--;

计算要诀:先参与运算,再递增递减

例:设a为1,b=a++*3等价于b=a*3; a=a+1;

a结果为2,b结果为3

注意事项 操作数必须为变量,而不能为其他表达式,不要在复杂表达式中使用递增递减操作符,可能带来错误结果。

for语句

for循环格式

for(初始化表达式;条件表达式;步进表达式) 循环体

for循环执行流程

先判断后执行:先执行初始化表达式,再计算条件表达式,并根据其结果决定是否执行一遍循环体(为真时执行),计算步进表达式的值(循环再次“初始化”),返回重新计算条件表达式的值以确定循环是否终止。初始化表达式只执行一次。

posted @ 2020-09-04 21:07  bear-Zhao  阅读(296)  评论(0编辑  收藏  举报