c语言中分支结构
计算机在执行程序时,一般按照语句的书写顺序执行,但在很多情况下需要根据条件选择所要执行的语句,这就是分支结构。
- 二分支结构和if-else语句:
if—else语句
格式:
if(表达式);
语句1:
else
语句2:
流程:先求解表达式,如果表达式的值为真,则执行语句1;反之,则执行语句2。
省去else的语句
格式:
if(表达式)
语句1:
流程:先求解表达式,如果表达式的值为真,则执行语句1;反之,则什么也不做。 - 多分枝结构和else-if语句:
格式:
if(表达式1)
语句1;
else if(表达式2)
语句2;
……
else if(表达式n-1)
语句n-1;
else
语句n;
流程:按照顺序进行求解,遇到了某一个结果为真的时候,执行这个真的语句并结束整个if语句的执行,如果到n-1个值都是假的话,执行语句n。
注:四则运算的求解
基本格式:操作数,运算符,操作数。输出运算结果时,要求随除数为0的情况进行特别处理。 - switch语句:
3.1在switch语句中都使用break语句。
格式:
switch(表达式){
case 常量表达式1:语句段1;break;
case 常量表达式2:语句段2;break;
……
case 常量表达式n:语句段n;break;
default: 语句段n+1;break;}
流程:如果表达式的值和某一条常量表达式相等,则对应执行该常量表达式后的相应语句;如果都不相等,则执行default语句段,最后break语句,跳出switch语句。
注:表达式和常量表达式的值一般是整型或者字符型,所有常量表达式的值都不能相等。每一个语句段可以包括一条或者多条语句,也可以是空语句。
default可以省去,但当表达式的值与任何一个常量表达式的值都不相等时,就什么都不执行。
3.2 在switch语句中不使用break语句
格式:switch(表达式){
case 常量表达式1:语句段1
……
case 常量表达式n:语句段n
default:语句段n+1
}
流程:如果表达式的值与某个常量表达式的值相等时,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段。
注:用break语句跳出正在执行的那个switch语句而不是跳出整个选择结构(针对于嵌套结构而言) - 多分支结构
格式:
if(表达式1)
if(表达式2)语句1:
else 语句2:
else
if(表达式3)语句3;
else 语句4;
注:if-else匹配原则,else与最靠近它的,没有与别的else匹配过的if相匹配。