c语言的分支语句大体分为两种方式,一种是直接的if,else的循环,如果判断条件为真就会执行if中语句,还有if ,else if,else 语句多条语句组合使用。该条件适用于条件判断较少的题目,例如比较三个数的大小,然后从小到大顺序输出,可以利用循环来这么写:
#include<stdlib.h>
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
//1.无差别比较
if (a >= b)
{
if (a >= c)//进入此循环说明a>=b&&a>=c,此时只需比较b和c的大小就可得出顺序
{
if (b >= c) printf("%d %d %d", c, b, a);
else printf("%d %d %d ", b, c, a);
}
else printf("%d %d %d", b, a, c);//到此说明a>=b&&a<c此时循序为:b a c
}
else//进入此循环说明a<b
{
if (a >= c) printf("%d %d %d", c, a, b);//此时 a<b&&a>=c,循序为:c a b
else//到此说明a<b&&a<c,于是需要比较b与c的大小才能得出循序
{
if (b >= c) printf("%d %d %d ", a, c, b);
else printf("%d %d %d", a, b, c);
}
}
}
而用switch写就是这么写的
switch (a>=b)
{
case 1:
switch (a >= c)
{
case 1:
switch (b>=c)
{
case 1:
printf("%d %d %d", c, b, a);
break;
case 0:
printf("%d %d %d ", b, c, a);
break;
}
break;
case 0:
printf("%d %d %d", b, a, c);
break;
}
break;
case 0:
switch (a>=c)
{
case 1:
printf("%d %d %d", c, a, b);
break;
case 0:
switch (b >= c)
{
case 1:
printf("%d %d %d ", a, c, b);
break;
case 0:
printf("%d %d %d", a, b, c);
break;
}
break;
}
break;
}
}
萌新可以根据if,else的循环去理解switch语句的含义,不要直接看一下就说懂了,应该自己去实践一下,上为多重嵌套问题。
下面是多条选择语句,这个很好理解,假设你的成绩为x,而对应学校的分数线为z到h,你有多个学校可选择,这就是多条选择的语句,因实现简单,请读者自行实现,代码模板如下:
if (条件表达式)
else if (条件表达式)
else if (条件表达式)
……
……
else
其中 if可独立存在,其他两个不可独立存在,需配合if语句使用