C语言分支语句

本文详细介绍了C语言中的if和switch语句,包括它们的使用规则、注意事项及实例。if语句适合复杂逻辑判断,而switch语句适用于离散值判断。文中还给出了将if语句转换为switch语句的例子,并强调了每个case分支使用break的重要性。同时,建议在编写case语句时按顺序排列并考虑默认情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.if语句分析

  • if语句用于根据条件选择执行语句
  • else不能独立存在且总是与它最近的if 相匹配(最近原则)
  • else语句后可以接连其他if 语句

2.if语句中零值比较的注意点

  • bool型变量应该直接出现于条件中,不要进行比较
  • -变量和0值比较时,0值应该出现在比较符号左边
  • float型变量不能直接进行0值比较,需要定义精度
    在这里插入图片描述

3.switch语句分析

switch语句对应单个条件多个分支的情形

  • case语句分支必须要有break ,否则会导致分支重叠
  • default语句有必要加上,以处理特殊情况
    在这里插入图片描述

case语句中的值只能是整型或字符型

case语句的排列顺序

  • 按字母或数字顺序排列各条语句
  • 正常情况放在前面,异常情况放在后面
  • default语句只用于处理真正的默认情况

4.if和switch的实例使用

#include "stdio.h"

void fun1(int i)
{
    if(i<60)
    {
        printf("Failed!\r\n");
    }
    else if((60<=i)&&(i<=80))
    {
        printf("GOOD GOOD DI!\r\n");
    }
    else
    {
        printf("Perfect!\r\n");
    }
}

void fun2(char i)
{
    switch(i)
    {
        case 'c':printf("Compile\r\n");break;//把'c'换成99也可以,ascii码表示字符
        case 'd':printf("Debug\r\n")  ;break;
        case 'o':printf("Object\r\n") ;break;
        case 'r':printf("Run\r\n")    ;break;
        default :printf("No in list\r\n");break;
    }
}

int main()
{

    fun1(50);
    fun1(90);
    fun1(70);
    fun2('c');
    fun2('d');
    fun2('o');
    fun2('r');
    fun2('f');

    return 0;
}

运行结果如下:
在这里插入图片描述
改写一下fun1函数为switch分支语句:

void fun1(int i)
{
    switch(i<60)
    {
        case 1:
            printf("Failed!\r\n");
            break;
        default :
            switch((60<=i)&&(i<=80))
            {
                case 1:
                     printf("GOOD GOOD DI!\r\n");
                     break;
                default:
                     printf("Perfect!\r\n");
                     break;
            }

    }
}

运行结果是一样的

5.小结
(1)if 语句适用于复杂逻辑进行判断的情形中
(2)switch语句适用于对离散值进行判断的情形中
(3)if语句和switch语句在功能上可以相互替换
(4)if语句对于“按片”分支判断的情形更加简洁
(5)switch语句对于多分支判断的情形更加简洁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值