更新时间:2024-09-10 10:36
对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。
if(条件)
{
分支体
}
if(条件)
{分支1}
else
{分支2}
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f ”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi ”r,i);
printf(“x2=%8.4f-%8.4fi ”r,i)
}
其语句格式为:
if(条件1) {分支1};
else if(条件2) {分支2}
else if(条件3) {分支3}
……
else if(条件n) {分支n}
else {分支n+1}
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
分支结构其实就是选择结构,程序的三大控制结构为:顺序结构、循环结构、选择结构。
选择结构
用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。 使用选择结构语句时,要用条件表达式来描述条件 示例:If x = 5 Then y = x + 1 If a>1 And b<>0 Then x = 1 当然各种程序对选择结构语法不一样。例如: C语言的选择结构为: if(条件表达式1) {语句块1;} else if(条件表达式2) {语句块2;} else if(条件表达式3) {语句块3;} . . . else {语句块n;} VB 中的选择结构为: If(条件表达式1) then 语句块1 ElseIf(条件表达式2) then 语句块2 . . . Else 语句块n End If C语言中switch 语句为: switch(变量或表达式) { case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; ……. case 常量表达式n: 语句块n; break; default:语句块n+1 break; } VB语言中Select Case(相当于C的switch)语句为: Select Case 变量或表达式 Case 表达式列表1 语句块1 Case 常量表达式2 语句块2 ……. Case 常量表达式n: 语句块n [Case Else 语句块n+1] End Select } 条件表达式可以分为两类: 关系表达式和逻辑表达式 条件表达式的取值为逻辑值(也称布尔值): 真(True) 和假(False) C用非0表示真,0表示假 以下的说明以C为依据: 1-关系运算符和关系表达式 关系运算是比较简单的一种逻辑运算, 其优先次序为: < 、 <= 、 > 、 >= 优先级相同,高 = = 、 != 优先级相同,低 用关系运算符连接起来的式子称为关系表达式。关系表达式的值是真/假。C语言中,非零即为真,零代表假 a=3,b=5,则关系表达式 a>b的值是假,而a双目运算符,在双目运算符中,它的优先级比赋值运算符要高: 算术运算符 高 关系运算符 赋值运算符 低 比如,a=1,b=3 a=b>5 即 a=(b>5),a+b>5 即 (a+b)>5 而a>b=5则是错误的表达式,因为它的实际含义是:(a>b)=5, C语言不允许对表达式赋值! 2-逻辑运算符和逻辑表达式 C语言提供了3个逻辑运算符,其中一个是单目运算符 逻辑表达式也只有两个值:真和假