if和switch的不同点

本文对比了if和switch在条件判断中的不同,包括适用场景、表达式类型、常量处理和代码可读性。通过实例说明了如何在日期判断和控制台选项中选择使用哪种结构。

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

if和switch的主要区别如下:

1)if的括号内的表达式可以分别是布尔类型的合法表达式、可以是所有大于0的正s整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。这点可以看如下代码:
  switch (2) // 除了0和1的其它正整数
  {
  case false: // 对应0
  printf(“false\n”);
  break;
  case true: // 对应1
  printf(“true\n”);
  break;
  default: // 对应非0和1以外的正整数
  printf(“其它\n”);
  break;
  }
  2)尽管if括号内也支持常量、枚举但也是有前提的那就是常量或枚举必须要显式给出相应的数值。而switch则不必;
  3)switch适合处理判断分支较多的情况下(代码可读性好),而if适合处理判断分支较少的情况下(反之代码可读性差,容易出现漏判或重复判断)。

相同点:都是根据判断条件决定是否执行操作。

不同点:if在关系运算和逻辑运算的条件中更加适合;当比较的目标是由一组具体的数值组成更事和使用switch。

**注意:**switch能够使用的类型:baty、short int String enum(枚举) char
例如 :控制台程序:1、注册 2、登陆 3、添加用户 4、查询用户
企业中也有自己的规则:这个企业的都是不同的,还是需要已进入的企业为准,但是大致相同。

swich适合使用在固定值,不能进行逻辑判断,是不支持float 而if适合使用逻辑判断,且里面的内容多样,可以是字符串,数值

**unreachable code :**编译错误,无法到达的代码
这个报错是我在使用while循环的时候遇到的一个问题,就是在使用while(true)的时候代码执行不到下一步导致程序陷入了死循环,
在后面设置一个break的条件进行跳出就可以解决这个问题;

练习: 输入任意一个日期: 包含年月日 , 判断该日期的下一天日期 , 使用if/switch实现
建议:把所有的日期的案例都找到 , 从中间发现规律
在这里插入图片描述

for循环
语法:
for(表达式1;表达式2;表达式3){
操作
}
执行顺序:
先执行表达式1,在执行表达式2.判断是否满足停止条件,不满足条件时,就执行循环要实现的操作;
在执行表达式3,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值