C语言——if-else和switch-case

基于小白保护原则,我们先简单介绍一下它们的基本使用格式;可以根据目录直接寻找自己需要的内容部分~

if-else

参考代码

例如我们需要一段代码来判断输入是a,b或c,输入一个字符 x(必是 a,b,c 之一)。输出

 输入 a 则输出 It is good,输入 b 则输出 OMG, 输入 c 则输出 Yes!

这就很适合用if-else分支语句

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char ch;
    scanf("%c",&ch);
    if(ch=='a')
    {
        printf("It is good");
    }
    else if(ch=='b')
    {
        printf("OMG");
    }
    else
    {
        printf("Yes!");
    }
    return 0;
}

适用情况 

1. 条件判断:根据某个条件的真假来执行不同的操作。例如,如果条件为真,则执行一组代码,否则执行另一组代码。
2. 分支控制:根据不同的情况选择不同的路径。通过使用多个  if-else  嵌套,可以实现更复杂的分支逻辑。
3. 错误处理:当程序中出现错误或异常情况时,可以使用  if-else  来进行错误检查和相应的处理。
4. 数据分类:根据数据的不同特征或值,将其分类并执行相应的操作。
5. 逻辑控制:在一些逻辑较为复杂的场景中,使用  if-else  可以清晰地表达和实现逻辑流程。1. 条件判断:根据某个条件的真假来执行不同的操作。例如,如果条件为真,则执行一组代码,否则执行另一组代码。

switch-case

参考代码

在上述示例中,根据变量  day  的值,使用  switch   case  语句输出对应的星期几。每个  case  分支对应一个特定的数值,当匹配到相应的  case  时,执行相应的代码

#include <stdio.h>

int main() {
    int day = 3;

    switch (day) {
    case 1:
        printf("It's Monday\n");
        break;
    case 2:
        printf("It's Tuesday\n");
        break;
    case 3:
        printf("It's Wednesday\n");
        break;
    case 4:
        printf("It's Thursday\n");
        break;
    case 5:
        printf("It's Friday\n");
        break;
    case 6:
        printf("It's Saturday\n");
        break;
    case 7:
        printf("It's Sunday\n");
        break;
    default:
        printf("Invalid day\n");
        break;
    }

    return 0;
}

适用情况

1. 多分支选择:当需要根据一个变量或表达式的值来执行多个不同的分支操作时, switch   case  比使用多个  if-else  语句更加清晰和简洁。
2. 离散值匹配: switch   case  适合处理具有离散值的情况,例如枚举类型、常量或特定的数值范围。
3. 多种情况处理:如果有多个不同的情况需要处理,并且每个情况都有独特的操作,使用  switch   case  可以更好地组织和管理代码。
4. 可读性和可维护性:相比于嵌套的  if-else  结构, switch   case  使得代码更易于阅读和理解,尤其是在处理大量不同情况时。
5. 代码效率:在某些情况下, switch   case  的执行效率可能比多个连续的  if-else  语句更高,因为它可以通过跳转表实现快速的分支跳转。

 
需要注意的是, switch   case  语句中的  case  后面的值必须是常量,并且通常是整数类型。每个  case  分支结尾需要使用  break  语句来防止默认的穿透行为。如果需要处理连续的数值范围,可以使用多个连续的  case  语句。


 对比

if-else  语句是一种非常常用和灵活的控制结构,适用于各种需要根据条件进行分支处理的情况。它可以帮助程序员编写更智能、灵活和可维护的代码。具体的使用场景取决于具体的编程需求和问题的逻辑

switch   case  语句在处理多分支情况时可以提供一种结构清晰、易于维护的方式,但在某些复杂的逻辑或需要更灵活的条件判断时,可能仍然需要使用  if-else  语句。选择使用哪种方式应该根据具体的需求和代码结构来决定。


总的来说:

只有在 case 中的条件是连续数字或相隔不大时,编译器会使用表结构做优化,性能优于 if-else。
其他情况下,switch-case 其实就是逐个分支判断,性能与 if-else 无异。
switch-case 中的 case 只能是常量,而 if-else 用途更广一些,本文仅讨论分支是常量的情况。

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值