程序设计基本结构(顺序、选择、循环)
1、顺序结构
是最简单的一种基本控制结构,它按语句出现的先后顺序依次执行
例:
2、选择结构
根据条件判断是否执行相关语句
(1).if语句
1)if语句
格式:if(表达式)语句1
2)if-else语句
if(表达式)语句1
else 语句2
先判断表达式的逻辑值,若该表达式的逻辑值为“真”,则执行语句1,否则执行语句2
注意:
if是一条语句。
如果要执行多个操作,需要将多个操作复合为单条语句,即把需要执行的多条语句用一对大括号括起来,{}后不应有“;”。
3)if-else-if语句
if(表达式)
语句1
else if (表达式2)
语句2
else if (表达式3)
语句3
例:
4)if语句的嵌套
if语句的嵌套主要用于处理多条件的问题,它有多种组合形式,例如if-else结构中可以包含if-else结构,if-else-if结构中可以包含if-else-if结构,也可以相互嵌套使用,例如简单的if结构中可以包含if-else结构。
例:if-else语句嵌套的一般形式为:
if(表达式1)
if(表达式2)
语句1
else
语句2 内嵌语句
else
if(表达式3)
语句3
else
语句4内嵌语句
注意:
-
LinuxC并不限制内嵌层数,但多层嵌套容易造成混乱,不推荐使用。
-
设计嵌套选择结构时,应清晰描述各条件之间的关系。
- 为了避免if与else发生配对错误,书写时可以将if语句中内嵌的if 语句用一对大括号括起来,也可以采用在else子句中内嵌if语句的编写代码。
(2)switch语句
switch语句的用途类似于多分支if语句,但在解决针对单个表达式的问题时比if语句更为简便。
switch的具体形式:
switch(表达式)
{
case 整数型常量表达式1:语句1[break]
case 整数型常量表达式2:语句2[break]
...
case 整数型常量表达式n:语句n[break]
default:语句n+1
}
例:
注意:
- []表示break可以省略
- switch后的表达好似可以是任意类型的表达式,如整型表达式、字符表达式等,但其运算结果会自动转换为整型。
- case后的整型常量表达式只能由整型常量构成,常量表达式的类型应与switch后的表达式类型相同,且各常量表达式的值不可相同。
3、循环结构
循环四要素
- 起点—初始值
- 终点—结束值
- 做什么事—循环体
- 起点到终点的变化一步进 控制值
(1)while语句
while语句是实现当型循环结构的语句,它的特点是:"先判断,后执行",其一般形式为:
while(表达式)
循环体语句
例如:
(2)do-while语句
do-while语句是直到型循环结构,即“先执行,后判断”,因此do-while语句至少会执行一次循环语句。
其一般形式为:
do
循环体结构
while(表达式);
首先执行一次循环体语句,然后判断表达式,如果表达式为0,则继续执行循环体语句;如果表达式为0;则结束循环,执行循环外的语句。
注意:
1)循环体只能是一条语句,如果需要使用多条语句,必须用大括号括起来,采用复合语句的形式。
2)循环体语句中一定要有能够改变表达式值的操作,能够使表达式的值最终变为0,结束循环,否则将变为“死”循环。
3)在关键字while的小括号的后面,一定要加上分号“;”,它表示do-while语句到此结束。
例如:
(3)for循环
for语句是实现当型循环结构的语句,特点是,“先判断,后执行”
其一般形式为;
for(表达式1;表达式2;表达式3)
循环体语句;
说明:
1)for语句中的各表达式都可省略,但各表达式之间的分号不能省略。
例如:for(;表达式2;表达式3)省去了表达式1
for(表达式1;;表达式3)省去了表达式2
for(表达式1;表达式2;)省去了表达式
for(;;;)省去了全部表达式
2)若在for语句之前已经给循环变量赋了初值,可省去表达式1)
3)若省去表达式2,则循环条件为真,循环将无休止进行,造成死循环
4)若想省去表达式3,可在循环体部分增加使循环趋于结束的内容
5)省略表达式1和表达式3,则for语句相当于while语句
6) 循环体可以是空语句
注意:
1)for语句的循环体语句只能是一条语句,如果使用多条语句,必须用大括号栝起来,采用复合语句的形式。
2)for语句要使表达式2的值最终变为0,以结束循环。否则将会造成”死“循环。
3)for语句形式灵活,表达式1和3均可省略,但一定要确保表达式2最终能够取0值。表达式省略后,其后的分号不可省。
例:
4.goto语句
goto语句 是一种无条件转移语句,可以控制程序流程转向制定名称标号的地方。
语句标号与goto语句可以不再一个循环层中,但必须处于同一个函数内。
格式:
goto语句标号;
...
标号名:语句:
例:
注意:goto语句容易导致结构化程序的逻辑混乱,因此结构化的程序设计方法不提倡使用goto语句,但在退出多层嵌套时,goto语句非常方便
5.break和continue语句
(1)break作用(主要用于循环结构和switch语句结构中):
- 一个循环中可以包含多个break语句,但一般只有一个
- 当前循环内部含有switch语句时,switch内部的break仅影响该switch语句而不会影响其中的循环
- break只能结束当前正在执行的循环,在执行多重循环时需要特别注意
- break语句在循环体中使用,能够强制终止程序的执行,结束循环
- 该语句是终止循环,即结束该语句所在层的循环,转到循环体外的语句去执行
(2)continue(主要用于循环体中)作用:
- continue只能用在循环里使用
- continue跳过循环体中剩余的语句而执行下一次循环
- 该语句只结束本次循环,并不跳出循环
顺序、结构、循环三大结构共同特点
- 均包含一个入口和一个出口
- 每一部分代码都有机会执行
- 不存在死循环
此代码在vs2010中编写