分享

C语言选择结构之 if 条件语句

 岁月之残痕 2017-03-25

选择结构语句

        在实际生活中我们经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。同样,在C语言中也经常需要对一些条件做出判断,从而决定执行哪一段代码,这时就需要使用选择语句。选择结构语句分为 if条件语句 和 switch条件语句,今天我们就重点讲解一下 if条件语句 

if条件语句

        if 条件语句分为三种语法格式,每一种格式都有其自身的特点,下面分别进行讲解。

格式一:if语句

        if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。

如果小明考试得了100分

妈妈星期天带小明去游乐场

在上面的伪代码中,“ 如果 ”相当于C语言中的关键字 if,“小明考试得了100分”是判断条件,需要用 ( ) 括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在 { } 中。修改后的伪代码如下:

if (小明考试得了100分)

{

     妈妈星期天带小明去游乐场

}

上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下:

if (条件语句)

{

代码块

}

上述语法格式中,判断条件是一个布尔值,当判断条件为true时, { } 中的执行语句才会被执行。if语句的执行流程如下图所示:


if语句流程图

接下来我们通过一个案例来学习if语句的具体用法:

 #include

 int main()

 {

 int x = 5;  //声明变量x 

 if (x < 10)="">//如果x的值小于10则执行if大括号中的代码

 {

 x++;

 }

 printf('x=%d\n' , x);

 return 0;

 }

运行结果如图3-5所示:

上例中,定义了一个变量x,其初始值为5。在if语句的判断条件中判断x的值是否小于10,很明显条件成立,因此{}中的语句会被执行,变量x的值将进行自增。从运行结果图的运行结果可以看出,x的值已由原来的5变成了6。

格式二:if…else语句

        if…else语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。if…else语句的具体语法格式如下:

if (判断条件)

{

    执行语句1

……

}

else

{

    执行语句2

……

}

上述语法格式中,判断条件是一个布尔值。当判断条件为true时,if后面 { } 中的执行语句1会被执行。当判断条件为false时,else后面 { } 中的执行语句2会被执行。if…else语句的执行流程如下图所示:


if…else语句流程图


接下来通过一个实现奇偶数判断的案例来演示if..else语句的具体用法:

 #include

 int main()

{

int num = 19;

 if (num % 2 == 0)

{

//判断条件成立,num被2整除

 printf('num是一个偶数\n');

}

 else

{

printf('num是一个奇数\n');

}

return 0;

}

运行结果如下图所示:


例中,变量num的值为19,模以2的结果为1,不等于0,判断条件不成立。因此会执行else后面 { } 中的语句,打印“num是一个奇数”。

格式三:if…else if…else语句

        if…else if…else语句用于对多个条件进行判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分等级为优,如果分数小于80分大于等于70分等级为良,如果分数小于70分大于等于60分等级为中,否则,等级为差。if…else if…else语句的具体语法格式如下:

if (判断条件1)

{

执行语句1

}

else if (判断条件2)

{

执行语句2

}

……

else if (判断条件n)

{

执行语句n

}

else

{

执行语句n+1

}

上述语法格式中,判断条件是一个布尔值。当判断条件 1 为 true 时, if 后面 { } 中的执行语句1会执行。当判断条件 1 为 false 时,会继续执行判断条件 2,如果为 true 则执行语句 2,以此类推,如果所有的判断条件都为 false ,则意味着所有条件均未满足,else后面 { } 中的执行语句n+1会被执行。if…else if…else语句的执行流程如下图所示:


if…else if…else语句的流程图

接下来通过一个对学生考试成绩进行等级划分的案例来演示if…else if…else语句的用法:

#include

int main()

{

int grade = 75; //定义学生成绩

if (grade >= 80)

{

//满足条件 grade >=80

printf('该成绩的等级为优\n');

}

else if (grade >= 70)

{

//不满足条件 grade >= 80 ,但满足条件 grade >= 70

printf('该成绩的等级为良\n');

}

else if (grade >= 60)

{

//不满足条件 grade >= 70 ,但满足条件 grade >= 60

printf('该成绩的等级为中\n');

}

else

{

//不满足条件 grade >= 60

printf('该成绩的等级为差\n');

}

return 0;

}

运行结果如图所示:


例中,定义了学生成绩 grade 为75。它不满足第一个判断条件 grade >=80,会执行第二个判断条件 grade>=70,条件成立,因此会打印“该成绩的等级为良”。

&多学一招:三元运算符

        在C语言中有一种特殊的运算叫做三元运算,它和if…else语句类似,具体语法格式如下:

判断条件 ? 表达式1 : 表达式2

三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。

例如求两个数x、y中的较大者,如果用if…else语句来实现,具体代码如下:

int x = 0;

int y = 1;

int max;

if (x > y)

{

max = x;

} else

{

max = y;

}

上面的代码运行之后,变量 max 的值为 1 。如果 if…else 语句用三元运算来替换,具体代码如下:

int x = 0;

int y = 1;

int max;

max = x > y ? x : y;

这样子代码量是不是就建少了呢?当然了,前提是你的得学会使用啦!



求关注,求转发,求支持!

想要学习的童鞋可以加群:564950050!

同时关注我们的兴趣部落:【C语言编程】



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多