第4章程序结构

   这一章让大家回忆起高中数学的程序框图了,其实我们的程序运行是在程序员的脑海里,程序员想怎么运行就怎么设计,一般我们都是先设计,后实现编码。

程序由各种各样的机构组成,程序结构组成了丰富多姿的程序算法于是,程序结构是一个非常重要的语法知识。


C语言程序三大结构:顺序结构、分支结构、循环结构。


顺序结构:

我们的程序在没有受中断的情况下,会按照顺序执行下来,知道结束为止,如图1:

C语言step-by-step(四)(程序结构)_第1张图片

图1



分支结构:

情况1:如图2

C语言step-by-step(四)(程序结构)_第2张图片

                                    图2


程序表达:

        if(条件1)

{

指令2;

}

else

{

指令n;

}


解释:这个分支语句,相当于互斥语句,只有一个被执行。可以单个if来使用,用于过滤一些没有必要的操作。



情况2:如图3

C语言step-by-step(四)(程序结构)_第3张图片

图3


程序表达:

        if(条件)

{

指令2;

}

else if(条件2)

{

指令3;

}

……(条件n)

else

{

指令2;

}


解释:这样的选择语句,那个条件符合就执行那个条件下的指令,执行一个就退出来。





情况3:用另外一种分支结构表达图3(实现机制不相同)

程序表达:

switch(value)

{

        case value0:

执行的程序

        break;

        case value1:

执行的程序

        break;

        case value2:

执行的程序

        break;

        …

        default:

执行的程序

        break;

}


解释:switch case是多值匹配分支结构,在switch 中的value值,如果case 中的value0~vaulen中有与value相等,则执行哪一个case下面的程序,执行完就break退出。注意:如果执行完一个case没有break,则继续执行紧接着的下一个case,直到有break或者是执行到default终止程序。


例子:

        switch(2)

        {

        case 0:

                  printf("0 \n");

        break;

        case 1:

                  printf("1 \n");

        break;

        case 2:

                  printf("2 \n");

        //break;

        case 3:

                  printf("3 \n");

        break;

        case 4:

                  printf("4 \n");

        //break;

        default:

                  printf("0 \n");

        break;

        }


输出结果:如图4

图4

循环结构:

概念:循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。


分别有这几种循环结构:

1goto语句和if语句构成循环;

2while语句;

3do-while语句;

4for语句;


goto-if语句

goto语句是一种无条件转移语句, BASIC中的goto语句相似。goto 语句的使用格式为:
    goto  语句标号;

其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处, 执行goto语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用, 当满足某一条件时, 程序跳到标号处运行。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时, goto语句则比较合理。


例程:(提供下载)


#include


void main()

{

        inta=5;


        loop:printf("%d\n",a);//goto跳转处


        if(a<20)

        {

                  a++;

                  gotoloop;//loop为标记

        }

        else

        {

                  printf("----goto_if循环结束-----\n");

        }


}


执行结果:如图5


C语言step-by-step(四)(程序结构)_第4张图片

                                   图5


while语句

如图6

C语言step-by-step(四)(程序结构)_第5张图片

图6

while语句的语义是:计算表达式的值,当值为真(0)时,执行循环体语句。其执行过程可用下图表示。

高中的时候,我们都学习过数列,其实while是一种数列的表达形式。

例程:


C语言step-by-step(四)(程序结构)_第6张图片

图7

程序表达:

        while(i<=100)

        {

                  sum= sum + i;

                  i= i+1;

        }


图8



do-while语句

如图8

C语言step-by-step(四)(程序结构)_第7张图片

图9

do-while语句的一般形式为:

  do
语句

       while(表达式)


7中利用do-while实现例程:

        do

        {

                  sum= sum + i;

                  i= i+1;

        }while (i<=100);


执行结果:

图10


注意:相信,现在大家都知道while do-while 最大区别是,while是先判断,后执行,do-while是先执行后判断。


for循环语句:

for语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:
for(表达式1;表达式2;表达式3)

{

执行程序

}


例程:

        for(i=1;i<=100;i++)

        {

                  sum= sum + i;

        }


执行结果:

图11

这章的程序结构就介绍到这里,下一章会探讨循环控制和函数,记得下载例程哦,祝你学习进步,生活愉快O(_)O…