JavaSE选择结构——优化if-else的嵌套代码

简介: JavaSE选择结构——优化if-else的嵌套代码

1.业务场景


在业务场景中,经常会出现很复杂的if else嵌套,譬如下面这种情况:👇👇👇

// 请按你的实际需求修改参数
public String convertCountryName(String fullName) {
    if ("china".equalsIgnoreCase(fullName)) {
        return "CN";
    } else if ("america".equalsIgnoreCase(fullName)) {
        return "US";
    } else if ("japan".equalsIgnoreCase(fullName)) {
        return "JP";
    } else if ("england".equalsIgnoreCase(fullName)) {
        return "UK";
    } else if ("france".equalsIgnoreCase(fullName)) {
        return "FR";
    } else if ("germany".equalsIgnoreCase(fullName)) {
        return "DE";
    } else {
        throw new RuntimeException("unknown country");
    }
}


对于上面的代码,可能我们大体上看还挺舒服的,可读性也不错。但是假设我们的业务需要支持地球上所有国家的名字与简写的转换,那么以目前的写法,将会出现有上百个if else,这样一来,代码的可读性、可扩展性等方面都将得不到一个好的保障。


所以我们能不能考虑对这上百个if-else进行优化呢?


2.优化代码


我在这里给出两种优化方式:①采用枚举实现;②采用Map实现。

/**
 *
 */
public enum CountryEnum {
    china("CN"),
    america("US"),
    japan("JP"),
    england("UK"),
    france("FR"),
    germany("DE"),
    ;
    private String fullName;
    CountryEnum(String fullName) {
        this.fullName = fullName;
    }
    public String getFullName() {
        return fullName;
    }
}

相关文章
【JAVASE】顺序和选择结构 下
【JAVASE】顺序和选择结构
【JAVASE】顺序和选择结构 上
【JAVASE】顺序和选择结构
|
2月前
|
前端开发 JavaScript
前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)
本文介绍了JavaScript中的流程控制语句,包括if、if-else、if-else嵌套和switch语句。
19 2
前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)
|
3月前
|
Java 机器人 开发者
04 Java流程控制-循环(while+for+关键字+嵌套)
04 Java流程控制-循环(while+for+关键字+嵌套)
60 4
Java中的条件语句:if语句和switch语句的作用与区别
Java中的条件语句:if语句和switch语句的作用与区别
272 0
|
6月前
|
Java 测试技术 C语言
【JavaSE】逻辑控制:顺序、分支和循环结构
【JavaSE】逻辑控制:顺序、分支和循环结构
66 0
|
人工智能
循环结构 程序举例
循环结构 程序举例
69 0
|
Java C语言 C++
教你精通JavaSE语法之第四章、逻辑控制
顺序结构、选择结构、循环结构知识点的提取,适用于有C基础和初学Java的同学复习和学习。
113 0
|
Java 编译器
[Java基础]基本概念(下)运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用
在上一篇文章[Java基础]基本概念(上)(标识符,关键字,基本数据类型)_小王师傅66的博客-CSDN博客中,我们学习了Java基础基本概念中的标识符,关键字,基本数据类型。这篇文章,我们将学习:运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用。
|
Java Linux C语言
【JavaSE】逻辑控制语句
顺序结构比较简单,即程序按照代码书写的顺序一行一行执行下去。