C语言分支语句-if语句与switch语句

一.if 语句

1.1 if语句单分支

       if语句语法形式如下:

      

      当表达式为真时,执行下面的语句;当表达式为假时,就不执行语句。而在C语言中,表达式的结果为0时,该表达式为假。当表达式的结果为非0时,该表达式为真。下面以一段简单的代码为例:输入一个整数,如果是偶数,则输出“偶数”。

#include<stdio.h>
int main()
{
    int num = 0;
    scanf("%d",&num);
    if(num % 2 == 0)
    {
       printf("偶数\n");
    }
    return 0;
}
       

输入2时,此时num%2==0该表达式为真,所以就输出了偶数。

 输入5时,此时num%2==0该表达式为假,所以if后的语句块就不会执行,因此就无任何输出。

 这段代码只有一个分支,理解起来自然就会简单一点。

1.2 if - else 双分支

在上一段代码中,if语句中的表达式为假时,什么都没有执行。if-else双分支与其不同的就在于当if语句中的表达式为假时,就会执行else中的语句,我们仍然以一段代码为例。

 

 此时输入5后,就不再像if单分支时什么都不输出,而是执行了else语句后的代码。简言之,就是if语句和else语句后的代码总要执行一个,且只能执行一个!!

1.3 if - else if - else 多分支

相比于上面的双分支,此时因为else if 可以有任意数量,所以就形成了更加丰富的分支。下面仍然以一段代码为例。

 此时输入5种不同的年龄段,就会有对应5种不同的输出。

1.4 if 与else 的配对规则

总的来说,讨论if 与else的配对规则时可分为有无大括号两种情况。下面就一一为大家解释。

1.4.1 无大括号时

代码示例:

  此时,输入4时,无任何输出;输入9时,第一个if 语句中的表达式为真,进入第二个if语句中,第二个依然成立,输出666666。输入13时,第一个if语句判断成立,进入第二个if 语句,此时不成立,执行else中的语句,输出999999。

总结来说,当无大括号时,else与距离最近的if配对。

1.4.2 有大括号时

代码示例:

此时,输入 4时,第一个if 不成立,执行else语句,输出999999。输入9时,第一个if 和第二个if均成立,故输出666666。输入13时,第一个if语句成立,但第二个if语句不成立,且因第二个if无else与其配对,故此时无任何输出。

总结,有大括号时,else与其邻近的大括号外最近的if配对。

二.switch语句

代码示例:

switch语句中,switch后必须时整型表达式。case后必须是整型常量表达式,且case和后面的数字之间必须有空格。

我们不妨先来看一下缺少break时的输出结果

 此时输入4时,执行结果为:而我们实际想要的结果应该是只输出星期四的,但因为缺少了break,代码会继续往后执行,从而不能到我们想要的结果。只有使用break代码才能及时跳出去。但需注意的是,并非每个case后面都需要break,这要根据实际情况来选择。

2.2 switch语句中的default  

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹
配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊
default ⼦句。在此代码中,如果输入了1-7之外的数字,我们可以给出输入错误的提示,这样就需要用到default子句。

此时输入8时,结果如下: 

 2.3 switch语句中的case和default的顺序问题

switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?
其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以。
不过我们通常是把 default ⼦句放在最后处理的。

三.小结

以上是小编本人对C语言中分支语句的理解,其中当然有许多错误和不足之处,希望各位大佬能在评论区指正,小编不胜感激。

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值