序
C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实 现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种 结构的组合。
我们可以使用用if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构
在C语言中,选择结构用于根据特定条件,从而执行不同的代码路径。
1. if 语句实现选择结构
1. if语句的语法形式
if ( 表达式 )
语句;
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中,0 为假,非0 表示真。如:
判断一个数是否为奇数,如果是则输出“ a为奇数 ”,否则程序执行结束。
这里输入 5,输出 a为奇数。
2. if,else 和 else if
如果一个数不是奇数,我们也想将信息打印到屏幕上。就可以使用 if ... else 语句。
输入 8,输出 a为偶数。
如果有其它分支选项需要进行判断,我们可以在 if 语句后面添加一条或多条 if else 语句,如:
输入 31,输出 青年
3.分支中包含多条语句
if , else以及 else if 语句默认都只控制⼀条语句.
图1 图2
如图1,图2中,不论 if 语句的条件是否满足, printf("goodbye"); 这条都会执行,即这条语句是独立存在的。
因此,想要控制多条语句,就需要在 if,else或者else if后加上大括号 ('{ }') ,如:
就算只有一条语句,也可以在加上大括号,以提高代码的可读性。
4.if语句的嵌套 与 else 的悬空
1.if语句的嵌套
我们可以在 if 语句中,对条件语句按需求进行嵌套,达到多层分支筛选的目的。
如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。
对于else if(表达式)语句中,else后的部分,即这里蓝色背景的部分。实际就是嵌套了一个 if 语句在上一个 if ... else 中。
也可以写成下列形式:
又如:输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非负数。
2.else的悬空
看一下下面这份代码。
运行代码可以看到,没有任何内容打印。
1.这是因为第二个 if语句是嵌套在第一个 if 语句中的,第一个 if 语句条件显然不满足,第二个 if 语句就没有机会执行。
而 else 是与它上面的第一个 if 进行匹配,即:
2.在这段程序中,else 是与第二个 if 进行匹配,而第二个 if 语句都没机会执行,与之相匹配的 else 语句也不会执行。最终程序执行结束,没有任何内容打印。
我们可以根据需求对这份代码进行简单修改。如:我们将 else 与第一个 if 进行匹配。