专业编程基础技术教程

网站首页 > 基础教程 正文

你或许并不需要使用 if else

ccvgpt 2024-11-20 13:03:02 基础教程 7 ℃

我们在编写代码的时候,使用 if else 是一件非常寻常的事情,但是有些场景过多的if else 反而带来了代码理解的成本。

有时候我们可以使用其他的方式去避免使用大量嵌套的 if else。

你或许并不需要使用 if else

本文将以 javascript 语言为例,其他编程语言也是大差不差的

&& 逻辑与运算符

重构前

重构后:

通过逻辑与操作,可以将if代码直接消除,由于原始代码是单行的,所以重构后的代码直接是一行了。

如果是双行我们还可以将多行拆成颗粒度更细的函数,然后再使用 &&

多行代码重构前:

多行代码重构后:

三目(元)运算符

三目运算符可以将 if-else 语句压缩成一行。特别是在为变量进行赋值的时候,三元运算法更加精简

三元运算符重构前


三元运算符重构后


在上面的案例中,使用三元运算符确保了变量只被赋值了一次,使得代码更加清晰。

嵌套的三元运算符

当我们在 if-else 语句中有 3 个或更多分支或者嵌套 if时,我们也可以使用嵌套的 三元运算符实现嵌套的 if-else 的作用

嵌套的三元运算符重构前:

嵌套的三元运算符重构后:


虽然嵌套的三元运算符看起来有点怪,不过在不超过 3 个层级下的嵌套还是可以考虑嵌套三元运算符的。因为通过缩进我们还是可以看得出代码的清晰结构的。

switch语句

如果要对一个输入的变量进行相关的判断,switch 语句是最好应用的场景,类似下面示例:通过switch 语句,根据用户传入的 action 的值进行依次判断并触发响应的逻辑。

switch 语句特殊的功能就是 break 关键词可以很好地让逻辑控制流在一个case 中执行,而不会被流向下一个 case

Map或者对象

编程设计模式中有一个策略模式,就是预先定义一些策略,然后在进行判断的时候,每次都去策略库中进行判断执行。

一般我们都是使用 对象或者 Map 这样的数据结构去存储这些策略,通过对象的 [] 访问方法或 Map 的 get 方法去替代 if-else 分支语句

小结

再次重申并不是说 if-else 语句不好,相反 if-else 在代码组织上也很直观,正因为如此,if-else语句在众多的编程语言中都存在。

不使用if-else 而使用其他的替代方式,是因为其他的方式可能会使代码更加简洁,更清晰,在有些场景下更加优雅,因此才会使用这些手段去替换 if-else.

------------

如果你有更多的想法或问题,欢迎在评论区分享你的看法。

如果对你有帮助的话,欢迎点赞、关注?、转发。

最近发表
标签列表