C语言三大结构之一-选择结构:
最简易可由 1.判断句if 或 switch 2.条件表达式 3. 条件成立需执行的相应代码段. 三部分组成,用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
例:
if (条件表达式)
{
条件成立需执行代码;
}
由于在C语言中,非0为真,0为假。因此若条件表达式成立,表达式返回值1并会执行相应代码段,而若条件表达式不成立,返回值0并跳过相应代码段。
下面详细介绍if和switch两大分支语句:
1.if语句:
if (条件表达式1)
{ 代码段1;}
else if (条件表达式2)
{ 代码段2;}
else
{ 代码段3;}
if-先判断条件表达式1,若成立则执行代码段1,结束后跳出这整个判断。
else if-若条件表达式1不成立,则判断条件表达式2,若成立则执行代码段2,结束后跳出整个判断
else-若以上判断全都不成立,则执行代码段3,判断结束
常用判断符: 1. 判断是否相等: == 2.判断是否不等: != 3.判断大小关系: < > >= <=
需注意:
1.判断相等时必须注意使用 == ,极易误用 = 进行了赋值而非判断
2.if支持嵌套判断,可根据需求使用
3.if后默认执行单个语句,若要执行多行代码,需用大括号“{}”将多行代码封装在一起,形成代码块
4.C语言中,else与最近的if语句进行匹配,而非根据缩进匹配语句!
例:以下代码会输出什么呢?
#include <stdio.h>
int main()
{
if (0)
printf("%d\n", 1);
if (1)
printf("%d\n",2);
else
printf("%d\n", 3);
return 0;
}
实际上,由于else与最近的第二个if进行匹配,这段代码并不会输出3,而是什么也不输出。可以看出,这样的代码风格极易令人误解,我们应将匹配的if-else语句缩进对齐。
2.switch语句:
switch (整型表达式)
{
case (整型常量表达式1):
代码段1;
break;
case (整型常量表达式2):
代码段2;
break;
default:
代码段3;
break;
}
switch后面的(n)可以是表达式,也可以是变量,但必须是整型!表达式中的值会与下方case语句后方常量表达式的值进行匹配,从此处进入整个代码块并开始执行代码。若其与下方case均不匹配,则默认从default处进入,它匹配了任何和其它 case 都不匹配的情况。然而需注意,情况匹配处只决定了代码块的入口,如果没有遇到break语句跳出,程序会自上往下顺序执行,因此,我们应在每种情况的末尾加一个break语句作为出口。
需注意:
1.switch后方括号应输入整型表达式
2.case后方括号应输入整型常量表达式
3.一般情况下应在每种情况末尾添加break语句跳出,使程序更有序,能按所需情况进行相应执行
4.switch语句同样支持嵌套使用,但必须注意,使用break语句跳出switch分支时,只会自内向外跳出一层