9个小技巧让你的 if else看起来更优雅(上)

简介: 9个小技巧让你的 if else看起来更优雅

if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码:


image.png


是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们无数次 review 别人代码时,都会发现类似的场景,那么我们本文就来详细聊聊,有没有什么方法可以让我们避免来写这么多的 if else 呢?


我们本文提供了 9 种方法来解决掉那些“烦人”的 if else,一起来看吧。


1.使用 return


我们使用 return 去掉多余的 else,实现代码如下。


优化前代码:


if (str.equals("java")) {
    // 业务代码 ! true;
} else {
    return ;
}


优化后代码:


if (str.equals("java")) {
    return ;
}
return false;


这样看起来就会舒服很多,虽然相差只有一行代码,但真正的高手和普通人之间的差距就是从这一行行代码中体现出来的。


「勿以善小而不为,勿以恶小而为之」「千里之堤,溃于蚁穴」,说的都是同样的道理。


2.使用 Map


使用 Map 数组,把相关的判断信息,定义为元素信息可以直接避免 if else 判断,实现代码如下。


优化前代码:


if (t == 1) {
    type = "name";
} else if (t == 2) {
    type = "id";
} else if (t == 3) {
    type = "mobile";
}


我们先定义一个 Map 数组,把相关判断信息存储起来:


Map<Integer, String> typeMap = new HashMap<>();
typeMap.put(1, "name");
typeMap.put(2, "id");
typeMap.put(3, "mobile");


之前的判断语句可以使用以下一行代码代替了:


type = typeMap.get(ty);


3.使用三元运算符


三元运算符也叫三元表达式或者三目运算符/表达式,不过代表的都是一个意思,优化代码如下。


优化前代码:


Integer score = 81;
if (score > 80) {
    score = 100;
} else {
    score = 60;
}


优化后代码:


score = score > 80 ? 100 : 60;



相关文章
|
数据安全/隐私保护 Docker 容器
『MinIO』在Docker中快速部署MinIO
📣读完这篇文章里你能收获到 - 在Docker中快速部署MinIO
6258 5
『MinIO』在Docker中快速部署MinIO
|
7月前
npm 包本地调试(详细流程:包本地路径、npm link 、yalc)
npm 包本地调试(详细流程:包本地路径、npm link 、yalc)
332 0
|
Java
【Java系列】if-else代码优化的八种方案
目录 前言 优化方案一:提前return,去除不必要的else 优化方案二:使用条件三目运算符 优化方案三:使用枚举 优化方案四:合并条件表达式 优化方案五:使用 Optional 优化方案六:表驱动法 优化方案七:优化逻辑结构,让正常流程走主干 优化方案八:策略模式+工厂方法消除if else 前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。 优化方案一:
770 0
【Java系列】if-else代码优化的八种方案
|
JavaScript Dubbo 前端开发
netty案例,netty4.1中级拓展篇七《Netty请求响应同步通信》
在我们实现开发RPC框架的时候,需要选择socket的通信方式。而我们知道一般情况下socket通信类似与qq聊天,发过去消息,什么时候回复都可以。但是我们RPC框架通信,从感觉上类似http调用,需要在一定时间内返回,否则就会发生超时断开。这里我们选择netty作为我们的socket框架,采用future方式进行通信。
567 0
netty案例,netty4.1中级拓展篇七《Netty请求响应同步通信》
java 之boolean
当涉及到编程时,逻辑判断是不可或缺的一部分。在 Java 中,`boolean` 是一种基本数据类型,用于表示逻辑值,即真(`true`)或假(`false`)。这篇文章将深入探讨 Java 中的 `boolean` 类型,介绍它的用途、操作以及在编程中的重要性。
|
运维 监控 数据处理
Flink的正则表达式--CEP规则引擎
Flink的正则表达式--CEP规则引擎
|
存储 Java Serverless
XXL-JOB零改造迁移
本实验将带大家体验,如何将XXL-JOB零改造迁移到Serverless Job。
|
设计模式 JSON 自然语言处理
如何提升 API-First 设计流程
一个 API-First 设计应该具有可复用性、互操作性、可修改性、用户友好性、安全性、高效性、务实性,并且重要的是,与组织目标保持一致。这些基本特征将确保 API 能够有效地为 API- First 组织战略和开发模式做出贡献,在这种模式中,API 可以最大限度地为业务创造价值。 但如何生成这样的 API-First 设计呢?
180 0
|
JavaScript 测试技术 编译器
从0搭建Vue3组件库:引入单元测试框架Vitest
从0搭建Vue3组件库:引入单元测试框架Vitest
922 0