switch和if语句应该的用法和区别,详细一点?
开关用于判断输入变量,输入其结果并以中断结束。if也是对()中变量的条件进行判断然后做出判断的,通常与else的主要原因是switch不适合业务系统的实际复杂需求,并且业务是不断变化和迭代的。一旦需求发生变化,条件的复杂性就很高,switch无法处理。
开关何时合适?它的场景是基于单个变量的值(例如枚举),这比if条件更可读。
从上面的场景来看,它太有限了。让我简单地谈谈它的一些缺点:
1。真正的业务场景非常复杂,条件也不单一。一旦需求发生变化,维护代码就会崩溃。
2.开关经常忘记写中断。据估计,很多人都忘了粗心地写。如果你看看google的代码规范,你会发现google对switch有很多要求。
事实上,有些人仍然使用交换机,这部分是由于历史原因。然而,随着科学技术的发展,原有的设计和设计都相对滞后。
某些编程语言(如python)没有开关语法。当然,一些新的语言golang和kotlin仍然是继承的,但是switch被打包了,被误解的语法被删除了,这使得switch更加灵活。没有包装很难使用。
通过上述缺点,即if语句更加灵活,并且根据业务逻辑条件编写,可维护性高。同时,只要代码质量高,可读性就会更高。
实际业务非常复杂,我不建议您必须使用大量的if,相反,它应该尽快返回以减少嵌套,从而增加可读性并降低维护成本。
为什么很多程序员不用switch,而是大量的if……elseif?
if和switch都是c语言中常见的条件判断句。这两个句子的作用是相同的,但它们在应用和句法上是不同的。以下是介绍。
if和else可一起用于区分多个关系表达式。有三种常见的if结构。在第一种用法中,只有一个if判断用于判断一个分支;在第二种用法中,它与一个esle一起用于对关系表达式的两种含义做出不同的句子表达;在第三种用法中,它与multipleelse一起用于多级判断,可以有多个elseif。这三种用法的结构如下图所示。
。
开关和外壳一起使用,末端使用断路器。
开关箱实际上是一个跳转表。只要事例的内容与判别式表达式的内容一致,将按顺序执行以下语句,直到出现中断。如果不满足这些条件,则执行缺省后的语句。
switchcase语句更适合跳转分支较多的情况。它将直接跳转到满足条件的分支。分支越多,效率越高。
单片机中if与switch的差异有哪些?
开关和if可以一起使用。switch可以在满足一定条件时执行,也可以在switch中使用if语句。下面是一个使用if-in开关的示例。#包括(&l)。h>main(){intx,y,iprintf(“pleaseinputdata(0~40)”)scanf(%d%d”,&x,&y)//输入两个介于0和40之间的数据,i=x/10//以x的值为参考,切换(i){case0//,相当于x的值小于10,case1/,如果((y>0)&,则相当于x的值小于20(y<=20))//使用条件语句判断y的范围并进行相应的处理,printf(“”nthisdataisarea”)breakcase2//,表示x的值小于30case3//,这意味着x的值小于40if((y>20)&&(y<40))//用条件语句判断y的范围并做相应的处理。printf(“”nthisdataisarea”)布雷默认值:中断}}
switch和if一起用该如何用?
switch语句的语法如下(switch、case和default是关键字):switch(expression){caseconstantexpression1):语句1;break;caseconstantexpression2:语句2;breakcaseconstantexpressionn:语句n;break;默认值:语句n1;break;}描述:breakexit{}case后面只能跟一个值(加冒号:),不能跟一个表达式。switch(expression)without(分号){}beforeandafter(分号)}switch语句规则(tcase标记必须是常量表达式)switch只能用于基本数据类型,如int、char等。对于其他类型,必须使用if语句。 case标记必须是唯一的表达式;也就是说,不允许两个case具有相同的值。别问为什么,c是规则!我们只需要了解规则并学习如何应用它们!猜测原因:浮点数据不是精确的数据,在机器上只能表示一个近似值,如:0.1在机器上是0.09999612。。。也可能是0.09999723。。。根据不同的精度,不同的数据源,其值是不确定的数据,因此,不能用用例来定位
原文标题:if和switch一起使用方法 switch和if语句应该的用法和区别,详细一点?,如若转载,请注明出处:https://www.saibowen.com/news/20961.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。