c语言中有三种控制结构:分别为 1.顺序结构 2.选择结构(分支结构) 3.循环结构
这篇文章主要总结第二种结构
c语言中选择结构共分为两种:if 和 switch
1.if语句
语法形式:
(1)
if(表达式)
{语句};
表达式为真,则语句执行。为假则不执行。(在c语言中0为假,非零为真)
(2)实现双分支结构:
if(表达式)
{语句1};
else
{语句2};
(3)实现多分支结构:
if(表达式1)
{语句1};
else if(表达式2)
{语句2};
...
else
{语句n};
对于if语句,还有一个问题如下,
请读者阅读以下代码,并得出程序运行的结果:
1 #include <stdio.h>
2 int main()
3 {
4 int a = 0;
5 int b = 2;
6 if(a == 1)
7 if(b == 2)
8 printf("hehe\n");
9 else
10 printf("haha\n");
11 return 0;
12 }
很多初学者,上来以判断 a 是 0,不等于 1 ,那就执⾏ else ⼦句,打印 haha,但是实质上,运行代码后你会发现,运行的结果式什么也不打印。
这是因为,如果有多个if和else,else总是与离它最近的if互相匹配,上面代码的排版,让我们误以为第九行的else是与与他对其的第六行if匹配,导致初学者容易发生错误。
在实际书写代码过程中,我们要尽量避免这种书写方式,只要加上大括号,代码的逻辑会更加清晰,使人阅读更加顺畅。
2.switch语句
switch
语句是⼀种特殊形式的
if...else
结构,⽤于判断条件有多个结果的情况。它把多重
的
else if
改成更易⽤、可读性更好的形式。
语法形式:
switch (expression) {
case value1: statement
case value2: statement
default: statement
}
要注意:1.expression必须是整形表达式
2.每个value必须是整型常量表达式
3. case 和后边的数字之间必须有空格
4. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句
5.当未进入任何case时,会执行default子句(default可以放在case前边。)
这就是c语言的两种分支结构,希望对大家有所帮助。