C语言11-分支结构1
C语言11-分支结构1
C语言的程序包含三种操作流程。
1.顺序流程
我们之前写的所有代码都为顺序流程。
流程1–>流程2–>流程3–>流程4–>流程5
2.分支流程
3.循环流程
分支流程
现在我们有一个新的需求:输入一个整数,判断它是否在1~10之间,如果在输出yes,如果不在就什么都不做。
现在我们来分析一下这个需求的流程图。
显然此流程出现了岔路不属于顺序流程而属于分支流程。
if语句
if语句的基本格式为
1 | if(测试条件){ |
现在让我们将新需求带入if语句的基本格式。
新的需求:输入一个整数,判断它是否在1~10之间,如果在输出yes,如果不在就什么都不做。
1 | if(1<=X<=10){ |
但是上述if的语句是错误的,if的测试条件只能为单项,上述的测试条件分为两项1<=x和x<=10。
这时为了将这两项测试条件和为一项就要用到逻辑与符号&&(此内容会在关系”运算符和逻辑运算符”章节中出现)。
即正确的写法为。
1 | if(1<=x && x<=10){ |
下面让我们来看一下完整的代码。
1 |
|
关于&&
&&是逻辑运算符,要求前后的关系都满足。
1 | if(1<=x && x<=10){ //如果x=0,满足0<=10但是不满足1<=0 |
else关键字
现在我们修改一下需求:输入一个整数,判断它是否在1~10之间,如果在输出yes,如果不在就输出no。
现在我们来分析一下这个需求的流程图。
我们在原来的程序上加上段printf(“no\n”);试试看。
1 |
|
结果发现无论输入的数字是否在1-10之间都会输出no。不符合我们的需求,我们只需要在输入值不在1-10之间的时候输出no,此时我们就要用到else关键词了,else关键词后的语句会在if判断为否的时候执行。我们根据这条原理再来修改一下程序。
1 |
|
现在我们的程序就完美实现了需求。
我们来总结一下if-else的基本写法:
1 | if(测试条件){ |
有关另外一种写法
1 |
|
这样的写法也可以成功运行if…else…函数,但是它和上面正常写法略有区别
1 |
|
在部分IDE软件中上述代码会编译报错,”2333”无论如何都不会被打印,在没有大括号的情况下if…else…只能识别下方的第一行代码。即printf(“yes”);和printf(“no”);
if…else if…else…语句
现在我们给出一个新的需求:要求输入一个整数,如果数值小于2,则输出Left;如果数值在2到10之间,则输出In;如果数值大于10,则输出Right。
流程图是这样的
我们根据上方的if…else…代码来简单分析一下if…else if…else…语句如何写
1 | if(小于2){ |
我们来根据这段分析来写出真正的程序
1 |
|
再加上注释
1 |
|