`
Qaohao
  • 浏览: 261675 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java之switch语句

    博客分类:
  • Java
阅读更多
在编写代码时,逻辑判断是避免不了的,大量的if-else判断使得往后的维护工作很复杂,怎样才能将大量的if-else分支转换成switch,提高代码的可维护性,大家都知道switch能处理的数据类型很有限,而且case条件不能是表达式。在这时间的工作中发现,我们可以通过一个转换函数,将if-else条件转换成case条件,从而使用switch语句来代替恶心的if-else。大家先看看下面这两段代码:
使用if-else:
package codeart.caseusage;

public class Human {

	public void procAge(int age) {
		// 未成年人
		if (age > 0 && age <= 18){
			// 大量逻辑
			// ...
		// 青年
		} else if (age > 18 && age <= 30) {
			// 大量逻辑
			// ...
		// 中年	
		} else if (age >30 && age<=50) {
			// 大量逻辑
			// ...
		// 中老年	
		} else if (age > 50 && age <= 70){
			// 大量逻辑
			// ...
		// 高龄
		} else {
			// 大量逻辑
			// ...
		}
		
	}
	
}

换成switch
package codeart.caseusage.withcase;

public class Human {

	private enum AgeBound {
		child, young, man, old, other
	};

	private AgeBound calcCase(int age) {
		if (age > 0 && age <= 18) {
			return AgeBound.child;
		} else if (age > 18 && age <= 30) {
			return AgeBound.young;
		} else if (age > 30 && age <= 50) {
			return AgeBound.man;
		} else if (age > 50 && age <= 70) {
			return AgeBound.old;
		} else {
			return AgeBound.other;
		}
	}

	public void procAge(int age) {
		switch (calcCase(age)) {
		case child:
			// 大量逻辑
			// ......
			break;
		case young:
			// 大量逻辑
			// ......
		case man:
			// 大量逻辑
			// ......
			break;
		case old:
			// 大量逻辑
			// ......
		case other:
			// 大量逻辑
			// ......
		default:
		}
	}

}

通过引入函数calcCase方法,把if-else条件抽出去,转换成switch能处理的类型,这样procAge函数无论从阅读和维护都容易多了。
2
4
分享到:
评论
3 楼 萧十一狼 2010-05-06  
还是认为 else if 看起来明了。 你写这个虽然优雅但是不实用(个人认为)。

else if和switch一回事,else if的可读性感觉更高,哈哈,无事很闲飘过.........
2 楼 Qaohao 2009-08-10  
恩。呵呵,这只是个例子。我觉得如果里面有大量业务相关的代码,这样将逻辑判断和业务分离,更容易维护些。
1 楼 chenjf2k 2009-08-10  
这么多代码,好像更加恶心了

相关推荐

    Java语言switch语句的编写

    switch 语句的写法 简单的一个代码,简述java语言switch、语句的编写

    38.java中的switch语句.zip

    38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip38.java中的switch语句.zip...

    Java-Java Switch语句详解教程

    Java Switch语句是Java编程语言中的一个控制流程结构,它提供了多路选择,允许程序根据变量的值执行不同的代码块。在Java中,Switch语句主要用于替代一系列的if...else if...else语句,使代码更加简洁、易读。本教程...

    Java中switch语句的注意事项.pdf

    Java中的switch语句是一种常用的多分支选择结构,它允许我们根据一个表达式的值来决定执行哪段代码。这种语句在编程中起到了重要的作用,尤其是在处理多种情况时,提供了简洁和高效的代码组织方式。 首先,我们要...

    Java中switch语句.pdf

    Java中switch语句.pdf 学习资料 复习资料 教学资源

    javaif语句和switch语句.doc

    Java 语句控制 - if 语句和 switch 语句 Java 语言中有两种选择语句:if 语句和 switch 语句。这两种语句允许程序员在程序执行时控制程序的执行过程。if 语句和 switch 语句是 Java 语言的基本控制结构,它们被广泛...

    Java switch case 语句.docx

    - 在Java早期版本中,switch语句支持的变量类型包括`byte`, `short`, `int`, 和 `char`。 - 自Java 7起,引入了对`String`类型的switch支持,但case标签必须是字符串常量或字面量。 3. **case语句**: - 每个...

    Java switch 语句如何使用 String 参数

    Java switch 语句如何使用 String 参数 Java switch 语句是一种多分支语句,用于根据不同的条件执行不同的代码块。在 Java 7 之前,switch 语句只能使用整数类型(byte、short、char、int)或枚举类型作为条件...

    Java中的Switch语句

    在Java编程语言中,`switch`语句是一种条件控制结构,它允许程序基于不同的值执行不同的代码块。相比传统的`if...else if...else`结构,`switch`语句提供了更简洁、更易于理解和维护的方式来进行多分支选择。在本文...

    switch语句在java和c#中的区别

    在 Java 和 C# 中,`switch` 语句在语法和行为上有一些显著的区别,尤其是在处理多条 `case` 的连续执行和 `break` 的使用上。 首先,我们来看 C# 中的 `switch` 语句示例: ```csharp class StudentGrade { ...

    javaif语句和switch语句.pdf

    本文主要探讨了Java中的两种选择语句:if语句和switch语句。 首先,我们来看if语句。if语句是Java中最基础的条件分支结构,它基于一个布尔表达式的值来决定执行哪部分代码。基本的if语句格式如下: ```java if ...

    Java中switch判断语句典型使用实例

    1. **switch语句基本结构**: ```java switch(expression) { case value1: // statements to be executed if expression matches value1 break; case value2: // statements to be executed if expression ...

    Java枚举类型在switch语句正确使用方法详解

    Java 枚举类型在 switch 语句正确使用方法详解 Java 枚举类型是 Java 语言中的一种特殊类型,用于定义一组具有一些公共特征的常量。Java 枚举类型在 switch 语句中的正确使用方法是本文的主要内容。通过示例代码,...

    java if语句和switch语句.pdf

    Java if语句和switch语句 Java 中的选择语句有两种:if 语句和 switch 语句。这些语句允许程序员在程序运行时控制程序的执行过程。 1. if 语句 if 语句是 Java 中的条件分支语句。它能将程序的执行路径分为两条。...

    java中switch选择语句代码详解

    Java 中 Switch 选择语句代码详解 Java 中的 Switch 选择语句是一种多路分支语句,用于根据不同的条件来执行不同的语句块。下面是 Switch 语句的基本结构: switch(表达式){ case 常量1: 语句块1; break; case...

    switch语句大全下载

    在大多数支持switch语句的编程语言(如C、C++、Java、C#等)中,其基本语法如下: ```markdown switch(expression) { case value1: // code to be executed if expression matches value1; break; case value...

    Java 零基础控制语句 - switch 语句.md

    ### Java 零基础控制语句 - switch 语句 #### 概述 在 Java 编程语言中,控制语句对于实现逻辑判断至关重要。其中,`switch` 语句是一种特殊的多分支选择语句,它允许根据不同的条件值执行相应的代码块。相比于...

    java用switch语句输出两个数的运算结果(运用字符变量+-*/).rar

    在一个程序中定义两个整数,定义一个字符变量,当这个字符变量分别是‘+’、‘-’、‘*’、‘/’时,用switch 语句输出这两个数的运算结果。(可以练习从控制台上输入两个数以及运算符,进行运算。 注:可以运行

    javaif语句和switch语句[文].pdf

    在Java编程语言中,选择语句是控制程序流程的关键元素,特别是`if`语句和`switch`语句。这两种语句允许根据程序运行时的条件来决定代码的执行路径,增强了程序的灵活性。 首先,我们来看`if`语句。`if`语句是一种...

Global site tag (gtag.js) - Google Analytics