本文共 2607 字,大约阅读时间需要 8 分钟。
程序的结构及分类
程序的结构化是一个设计思想,规定了一套方法,是程序具有合理的结构,以保证和验证程序的正确性。这种方法要求程序设计者不随心所欲地编写程序,而要按照一定的结构形式来设计和编写程序。其重要目的是使程序具有良好的结构,使程序易于设计、易于理解、易于调试修改,从而提高设计和维护程序工作的效率。
程序的结构化可以划分为三种主要结构:顺序结构、选择结构和循环结构。
顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择执行其中的一个分支。C语言中的选择结构主要包括if语句和switch语句。
循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的问题是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。
当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环。
直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处。因为是"直到条件为真时为止",所以称为直到型循环。
选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
if语句介绍
形式一(if):如果表达式为真,则执行语句块1,否则不执行。
形式二(if...else...):如果表达式为真则执行语句块1,否则执行语句块2。
形式三(if...else if...else...):从表达式1开始往下判断,当表达式为真就执行该表达式对应的语句块,例如从表达式1开始判断一直到表达式n才出现表达式的值为真,那么就执行语句块n中的内容。当语句块执行结束后跳出整个if语句。如果表达式1到表达式n的值都为假则执行else后面的语句块n+1。
形式四(if 语句的嵌套):if语句中根据需要还可以嵌套if语句。
使用if语句时需要注意以下几点:
if(表达式);如果后面跟空语句,表示如果表达式的值为真则什么也不干。
if(表达式) return 0;函数不会往下执行了,直接退出。一个函数可以有多个return,但只有一个起作用。
if(非零常量) 表示永真,如果(0) 表示永假,没有实际意义。
遇到省略大括号的if语句,从下往上依次匹配else。
switch语句介绍
又称开关语句。switch语句的执行流程是计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
switch语句的形式是:
switch(表达式) { case 常量表达式1: 语句1; case 常量表达式2: 语句2; ... default: 语句n+1; }
switch语句的值得注意的地方:
表达式的类型(case语句后的值)的必须是整型或可以转变为整型的值(byte、short、char和int类型)。
功能代码部分可以写任意多句。
case语句可以有任意多句,可以不用加括号“{}”。
break关键字的意思是中断,指结束switch语句,break语句为可选。
case值得注意的地方:
a. case的值必须是常数或常量,不能为变量。
b. case的值必须是整数,不能为浮点数。
c. case后面不可以直接定义变量。
d. case后面定义的变量必须加上大括号。
e. default语句可以写在switch语句中的任意位置,功能类似于if语句中的else,但写在最上面会重新一次往下执行,default语句执行后不会跳出switch语句,需要使用break语句才会跳出。default语句写在最后省略break语句不影响。
switch语句的执行流程是:
在执行的过程中,如果遇到break语句,则跳出switch语句。如果没有遇到break语句,则一直执行到switch语句的结束。
循环语句介绍
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。
while循环
while结构循环为当型循环(when type loop),一般用于不知道循环次数的情况。维持循环的是一个条件表达式,条件成立执行循环体,条件不成立退出循环。
一般形式:
while (表达式) { 循环体; }
do...while循环
do…while语句结构为直到型循环(until type loop),也用于不知道循环次数的情况。do…while和while的区别在于do…while结构是执行完一遍循环体再判断条件。
一般形式:
do { 循环体; } while (表达式); (注意最后的分号)
for循环
for为当型循环语句,它很好地体现了正确表达循环结构应注意的三个问题:控制变量的初始化、循环的条件、循环控制变量的更新。
for表达式包括:
表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:关系表达式或逻辑表达式,循环控制条件; 表达式3:一般为赋值表达式,给控制变量增量或减量。
for语句格式为:
for (表达式1;表达式2;表达式3) { 循环体; }
for语句执行过程如下:
①先对表达式1赋初值; ②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。
转载地址:http://bruwk.baihongyu.com/