程序设计基本结构(顺序、选择、循环)

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中编写