C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言中的分支语句

C语言中的分支语句用法解读

作者:wzsygcg

这篇文章主要介绍了C语言中的分支语句用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言

C语言是一种结构化程序设计语言,其由三大基本结构组成,分别为:顺序结构,选择结构,循环结构,它们组成的算法结构可以解决任何复杂的问题。

对于顺序结构指的就是从main函数入口开始,从头到尾依次执行代码。

对于选择结构,顾名思义就是进行选择,其有两种语句:

1.if语句

1.1 if语句的语法形式

if(表达式)

语句

1.2 if语句用法

例:输入一个整数,判断是否为奇数

由于表达式判断的依据为真,若为非0值,则执行语句,为0,则不执行语句,所以奇数判断依据 a%2==1 可以略为 a%2.

由上我们可以不由的想,若需要判断出偶数呢?

这就涉及到了if..else语句了

2.if..else语句

2.1 if...else语句的语法形式

2.2应用

1.对上文的代码进行完善

2.输⼊⼀个年龄,>= 18岁就输出:成年,否则就输出:未成年

若我们要更加细致的区分不同年龄段的称谓,我们就需要多条的if...else语句进行连用,即

3.嵌套if语句

if else语句可以进行连用构成多重判断。

3.1例

输⼊⼀个⼈的年龄 ,如果年龄<18岁,打印"少年" ,如果年龄在18岁⾄44岁打印"⻘年" ,如果年龄在45岁⾄59岁打印"中⽼年" ,如果年龄在60岁⾄89岁打印"⽼年" ,如果90岁及以上打印"⽼寿星"。

常见编译错误1

问题:

修改后:

4.悬空else问题

对于这个问题,我们需要知道一个规则--else总是与最接近的if匹配

例:

对于上图代码,最后输出的结果是什么呢?

结果其实是没有输出的,这就是典型的悬空else问题。加了大括号后会便于理解,由于else总是与最接近的if匹配,所以在 a=0 的情况下,是不符合if表达式中条件的,故不会有输出。

由此可知,适当的加上大括号会使得代码的可读性高,逻辑更清晰。

当然,大括号还会改变与else最接近的if语句,如:

这样就会输出 haha 。

5.关系操作符

> ,>= , < , <= , == , !=

以上都是关系操作符,其返回 0\1 ,0表示假,1表示真。

常见编译错误2. 要注意区别 == 与 = ,== 是表示相等,若 A==B 表示A与B的值相等,但若是 A = B 则是表示将B赋值给A,两者不能混淆。

温馨小提示:若当一个变量与一个常量比较相等时,建议将常量值放在 == 的左边,这样在写错了== 之后编译器会进行报错,便于检查代码。但若是将常量值位于 == 右边则不会出现该报错,但程序最后的结果时错误的。

常见编译错误3.关系运算符不宜连用,会导致程序结果出错

上图就出现了错误,其执行流程是这样的:

先是a与47进行比较,得出0,后0与100进行比较,得出1,结果为真,返回 hehe。

那在C语言中如何表达 47<=a<=100?这就需要使用到逻辑操作符。

6. 逻辑操作符

所以就可以表示为 47<=a&&a<=100 ; 若要表示 a<=47或 a>=100,则就是 a<=47||a>=100;

若要表示a不等于47,就是 a!=47。

例:输入年数,判断是不是闰年

7.短路

在C语言逻辑运算中有一个特点,都是先对左侧的表达式求值,再对右侧的表达式求值,其顺序是固定的,所以在左侧的表达式已经符合逻辑运算符的条件的时候,右侧的表达式将不会被执行,这就是短路

例:

1.&&的短路

由于a++是先使用,再+1,所以当a=0的时候进行计算,故左侧表达式为假,所以右侧的表达式不会进行计算,由此输出 1 4 5 0。

2.||的短路

同理,由于a++和c++的计算结果为真(1),所以后面的b++不会被计算了,最后输出 1 4 6 1。

8..条件操作符

是C语言中唯一的三目操作符,其形式为:

例:比较两个数的大小

9.switch语句

9.1 switch语句是一种特殊的if...else 结构,适用于判断条件有多少个结果的情况。提高了代码的可读性,更方便使用。

9.2 switch语句的语法构

switch(整型/字符型表达式)

{

case(整型常量表达式1):(语句)

default:(语句)

}

根据表达式计算出的不同值,程序将会执行不同的case语句。若是找不到对应的case语句,就会执行default分支。

例:1.

2.输⼊⼀个1~7的数字,打印对应的星期⼏

例如:

变题:

1. 输⼊1~5,输出的是“⼯作⽇”;

2. 输⼊6~7,输出“休息⽇”.

若用户输入的不是1-7的数字该如何编写代码?

这时就可以借助default了。

switch语句中的case子句和default子句是没有顺序要求的,只要满足实际需求就行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文