C语言程序结构3+1
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。
下面介绍几种基本的分支结构:
1、单分支
if(条件)
{
//当条件为真,执行分支体;否则跳过分支体
}//分支体可以是一条语句,此时“{}”可以省略,
//也可以是多条语句即复合语句。
2、双分支
if(条件)
{分支1}//当条件为真,执行分支体1
else
{分支2}//当条件为假,执行分支体2
//分支体可以是一条语句,此时“{}”可以省略,
//也可以是多条语句即复合语句。
3、嵌套分支
if(条件1){分支1};
elseif(条件2){分支2}
elseif(条件3){分支3}
……
elseif(条件n){分支n}
else{分支n+1}
嵌套if语句是比较容易混淆的,其实就是双分支里面某一个分支又包含了选择分支结构。
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。
4、switch语句
该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路。
它不同if…else语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。
这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。
switchcase:引入关键字:switch
case
break
default
switch(变量)
//执行到这一句时,变量的值是已知的
{
//switchcase语句执行时,会用该变量的值依次与各个case后的常数去对比,试图找到第一个匹配项,找到匹配的项目后,
case常数1:
//就去执行该case对应的代码段,如果没找到则继续下一个case,直到default
代码段1;
//如果前面的case都未匹配,则default匹配。
break;
case常数2:
代码段2;
break;
……
default:
代码段n;
break;
}
注:第一,case中必须是常数,而且必须是整形;
第二,一般来说,每个case中代码段后都必须有一个break;
第三,case之后一般都会有default,虽然语法上允许没有default,但是建议写代码时一定要写;
ifelse和switchcase的区别:
ifelse适合对比条件较复杂,但是分支比较少的情况,switchcase适合那种对比条件简单,但是分支较多的情况;
通常的做法是:在适合使用switchcase的情况下会优先使用switchcase,如果不适合则使用ifelse;