第4章程序结构
这一章让大家回忆起高中数学的程序框图了,其实我们的程序运行是在程序员的脑海里,程序员想怎么运行就怎么设计,一般我们都是先设计,后实现编码。
程序由各种各样的机构组成,程序结构组成了丰富多姿的程序算法…于是,程序结构是一个非常重要的语法知识。
C语言程序三大结构:顺序结构、分支结构、循环结构。
顺序结构:
我们的程序在没有受中断的情况下,会按照顺序执行下来,知道结束为止,如图1:
图1
分支结构:
情况1:如图2
图2
程序表达:
if(条件1)
{
指令2;
…
}
else
{
指令n;
…
}
解释:这个分支语句,相当于互斥语句,只有一个被执行。可以单个if来使用,用于过滤一些没有必要的操作。
情况2:如图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语言提供了多种循环语句,可以组成各种不同形式的循环结构。
分别有这几种循环结构:
1用goto语句和if语句构成循环;
2用while语句;
3用do-while语句;
4用for语句;
goto-if语句
goto语句是一种无条件转移语句, 与BASIC中的goto语句相似。goto 语句的使用格式为:
goto 语句标号;
其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处, 执行goto语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用, 当满足某一条件时, 程序跳到标号处运行。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时, 用goto语句则比较合理。
例程:(提供下载)
#include <stdio.h>
void main()
{
inta=5;
跳转处
if(a<20)
{
a++;
为标记
}
else
{
循环结束-----\n");
}
}
执行结果:如图5
图5
while语句
如图6:
图6
while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。其执行过程可用下图表示。
高中的时候,我们都学习过数列,其实while是一种数列的表达形式。
例程:
图7
程序表达:
while(i<=100)
{
sum= sum + i;
i= i+1;
}
图8
do-while语句
如图8:
图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…
转载于:https://blog.51cto.com/dragonyeah/1282050