前言
初学c语言,有错误的地方还望纠正,后续有了新的理解也会不断补充。
分支结构
能够通过采用合适的分支条件和分析程序流程使问题简单化的结构,通常适用于具有逻辑或关系比较等条件判断的计算。
分支结构又称选择结构,其中包括if else判断语句和switch判断语句。
分支结构的基本类型包括:单一分支体,双(多)分支体,嵌套分支体。
1、if else
if else结构形式为
if (判断语句)
{
语句块1
}
else
{
语句块2
}
通过判断语句后:
判断为真(1)则运行语句块1
判断为假(0)则运行语句块2
当语句块中只有一条语句时可以不加花括号,但为了避免他人或自己在理解代码是发生偏差,并使代码更加规范,一般要求加上花括号。
当语句块2中没有语句时else可以省略。
(1)、单一分支体
由一组单一的if结构组成的分支体称为单一分支体。
如求a与b的较大值
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d",&a,&d);
if(b > a)
{
a=b;
}
printf("两者中较大的数为%d",a);
return 0;
(2)、双分支体
由一组if else结构组成的分支体称为单一分支体。
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d",&a,&b);
if (a > b)
{
MAX = a;
}
else
{
MAX = b;
}
printf("两者中较大的数为%d", MAX);
return 0;
(3)、多分支体
由两个及以上if else结构相连的分支体称为双(多)分支体。
如形式
if(判断语句)
{
语句块
}
else if(判断语句)
{
语句块
}else if(判断语句)
{
语句块
}
......
其中else可省
如判断分数
#include <stdio.h>
int main ()
{
int score;
printf("你的成绩是%d",score);
scanf("%d",&score);
if (score>=90)
{
printf("\n优秀");
}else if (90>score>=80)
{
printf("\n良好“);
}else if (80>score>=60)
{
printf("\n及格");
}else if (60>score)
{
printf("\n不及格);
}
return 0;
(4)、嵌套分支
形式如
if (条件)
{
if (条件)
语句块;
else
{
if (条件)
语句块;
else
语句块;
}
}
else
语句块;
等类似的结构。
如判断a是否为最大值
#include <stdio.h>
int main ()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if (a>=b)
{
if (a>=c)
{
printf("a最大”);
}
}
else
{
printf("a不是最大的");
}
return 0;
(5)、浮空else问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
2、switch
结构表示为
switch(判断部分)
{
case x1:语句块1;break;
case x2:语句块2;break;
case x3:语句块3;break;
case ..:语句块..;break;
default :语句块n:break;
}
3、总结
以上为分支结构概述,以后会不断完善细节,也希望各位大佬多多指教。