c语言是结构化的程序设计语言,有三大结构:顺序结构、选择结构、循环结构,其实生活中的事情都可以拆分为这三种结构或者这三种结构的组合。
这里我浅浅介绍一下我所了解的选择结构。
选择结构也叫分支结构,这种结构在C语言中我们用 if 和 switch 来实现。
1. if语句
1.1 if
if语句的语法形式如下:
表达式成立(为真),则执行语句,表达式不成立(为假),则语句不执行。另外在c语言中,非0为真,0为假,即表达式中为非0时,语句执行;表达式中为0时,语句不执行。
例子:输入一个整数,判断是否为奇数
流程图:
1.2 else
一个数不是奇数就是偶数,如果要判断一个任意是数字是奇数还是偶数怎么办呢?
此处就需要 if...else...语法形式如下:
例子:判断一个数是奇数还是偶数,并且打印出来
练习:输入一个年龄,判断是否成年
1.3 分支中包含多条语句
默认 if 和 else 语句中只控制一条语句,比如:
这样,你会发现无论是成年了还是未成年,都是打印了“可以谈恋爱了”,
这是因为if语句只控制了printf("成年了\n");这一条语句,表达式为真就打印,表达式为假就不打印,但是对于printf("可以谈恋爱了\n");这条语句是独立存在的,不管条件为真为假都会打印。那如果我们要if控制两条语句怎么办呢?其实很简单用一个{}将两条语句括起来就行了,同样else也可以跟上大括号。
1.4 嵌套if
在 if else 语句中,else可以与另外一个if语句连用,构成多重判断。
比如:要求输入一个整数,判断输入的整数是0,还是正数或者负数。请看如下代码:
1.5 悬空else问题
如果有多个if和else,可以记住这样一条规则,else总是跟最接近的if匹配。
看下面这个例子:
再为了解else悬空之前,你是否觉得应该打印出haha,但代码执行后确实什么都不打印。
只需要记住else总是跟最近的if匹配便可区分,如何更好区分呢?加上大括号!使逻辑清晰,代可读性高
到这就是我个人对分支结构中if的理解,下面会介绍一些简单的操作符和另外一种实现分支结构中swtich语句。
谢谢观看!用发财小手点点赞!