系列文章目录
前言
文章作者刚入门,内容理解不成熟,有错误之处,欢迎斧正
一、什么是分支结构
具有判断能力并且能够根据判断结果执行不同路径的结构
分支结构语句主要有两种:
1.if else
完整结构:>
if(判断部分)
{
语句块1;
}
else
{
语句块2;
}
当判断结果:>
真,执行语句块1;
假,执行语句块2;
c语言中数字0代表假,其余数字代表真,但是系统默认真的值为1
当只有语句块中只有一条语句时,外面的花括号可以省略,但是为了良好的代码书写习惯,无论语句的多少,都应该加上花括号
(1)单分支结构
仅有判断部分和对应语句构成,适用于结果判断为真时,需要执行相应的语句
例如,将小写字母改成大写字母的操作,由于就是大写字母时可以不做修改,那么这种情况就适用于单分支与结构
#include <stdio.h>
int main()
{
char ch = '0';
scanf("%c", &ch);
if (ch >= 'a' && ch <= 'b')
{
ch -= 32;
}
printf("%c", ch);
return 0;
}
输入’a‘时,结果是’A‘
输入’A‘时,结果是’A‘
(2)多分支结构
由多个if else语句构成,适用于当一个完整的if else语句无法完成要求,同时多个单分支语句又无法得出正确答案
例如,要将字符字母a改成D,b改成D,c改成D,三者之间没有必然的联系,就可以采用if else多分支结构
#include <stdio.h>
int main()
{
char ch = '0';
scanf("%c", &ch);
if (ch == 'a')
{
ch = 'D';
}
else if (ch == 'b')
{
ch == 'D';
}
else if (ch == 'c')
{
ch == 'D';
}
else
{
ch = ch;
}
printf("%c", ch);
return 0;
}
如上程序,其中的最后一个else语句,并没有什么实际性的作用,所以可以把将它省略,该程序也能正常运行
(3)嵌套分支结构
在分支结构里面,嵌套分支结构,适用于判断后,需要再次判断的情况
例如,判断是否是大写字母,然后再执行上面题目例子
#include <stdio.h>
int main()
{
char ch = '0';
scanf("%c", &ch);
if (ch >= 'a' && ch <= 'z')
{
if (ch == 'a')
{
ch = 'D';
}
else if (ch == 'b')
{
ch == 'D';
}
else if (ch == 'c')
{
ch == 'D';
}
else
{
ch = ch;
}
}
else
{
ch = ch;
}
printf("%c", ch);
return 0;
}
这样就既实现了字母大小写的判断,又实现了对应要求字母的更改。
2.switch
完整结构:>
switch(判断部分)
{
case x1:语句块1;break;
case x2:语句块2;break;
case x3:语句块3;break;
case ..:语句块..;break;
default :语句块n:break;
}
Switch语句由前面的判断部分和后面的不同情况case,及其对应语句块组成,并且判断部分只能是整型的结果和情况case 1,2,3都只能是整型的常量(字符也是整形,它可以用对应的ASCII码表示)
注意:>其中的case,作为语句的入口(因此同一个语句块情况可以叠加,例如:case1:case2:语句块;break;当为条件1或条件2时,语句块都会被执行),break作为出口,所以如果语句块后面没有break时,程序就会继续往下执行到下一个case,直到找到出口或者switch分支结束
#include <stdio.h>
int main()
{
int a = 0;
switch (a)
{
case 0:a = 1; break;
case 1:a = 11; break;
default:a = 111; break;
}
printf("a=%d\n", a);
int b = 0;
switch (b)
{
case 0:b = 1;
case 1:b = 11; break;
default:b = 111; break;
}
printf("b=%d\n", b);
int c = 0;
switch (c)
{
case 0:c = 1;
case 1:c = 11;
default:c = 111;
}
printf("c=%d\n", c);
return 0;
}
结果:> a=1
b=11
c=111
总结
以上就是分支结构,在程序设计中应用比较频繁,其中最多的是if else分支结构