今天有个朋友问我Java switch case里面的用法,由于 switch case 和 if-else 工作原理不一样,可能某些公司会避免使用if-else而采用switch case的方法来解决问题。
在jdk1.6 中:
int i= "test".hashcode();
String s = "test";
switch (s.hashcode()) {
case i :System.out.println("bad");
}//这种方法是不支持的。编译根本通过不了,因为 i 是一个变量
经过网上一翻查找,在jdk1.7中可能会支持这个功能。
但是问题就不能这么简单的解决,因为现在很多企业都没有在使用1.7的版本。
没事在电脑面前想出来一个办法,应该可以行得通在jdk1.6中解决 case不能使用变量的方法
上代码
public class TestHash {
/**
* Comments:
* @author Jacky
* Chinese :
* @param args
*/
public static void main(String[] args) {
String s = "test";
int i= "test".hashCode();
switch ( ("test1".hashCode()== i ? 1:1) *("test2".hashCode() == i ? 2:1) *(s.hashCode() == i ? 3 :1) ){
case 1 :System.out.println("not good");break;
case 2 : System.out.println("not good"); break;
case 3 : System.out.println("good"); break;
default : System.out.print(4); break;
}//switch
}// main
}//class
ok,我运行了下,运行结果是打印 good
看来这样是行得通的,而且也避免了case后面使用变量;但是效率应该还算行吧。比If-else应该好一点。
望各位大侠指点。
还有一种办法,枚举类型也可以行得通!
分享到:
相关推荐
Java的switch case语句是一种控制流程结构,用于根据变量的值执行不同的代码块。它提供了一种更简洁的方式来替代多个if...else if...else语句。以下是对switch case语句的详细解释: 1. **基本语法**: switch语句...
`switch-case` 语句是 Java 语言中的一个控制流结构,它允许程序根据不同的条件分支执行不同的代码块。在给定的例子中,`switch-case` 语句被用来根据学生的成绩分配相应的等级,如 A、B、C、D 或 F。 首先,我们...
Java switch case 语句是 Java 语言中的一种控制流语句,用于判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 语句的语法格式如下: switch(expression){ case value : //语句 break; //...
Java 语言中的 `switch case` 语句是一种流程控制结构,用于执行多个条件分支中的一个。这个语句常用于简化基于不同条件执行不同操作的代码。在给定的例子中,`switch case` 被用来根据学生成绩等级输出相应的评价。...
Java Switch语句是Java编程语言中的一个控制流程结构,它提供了多路选择,允许程序根据变量的值执行不同的代码块。在Java中,Switch语句主要用于替代一系列的if...else if...else语句,使代码更加简洁、易读。本教程...
因此,当 `Grade / 10` 等于 7 时,`case 7:` 和 `case 6:` 都会被执行,导致输出 "你的成绩为:C" 和 "你的成绩为:D",这是由于 C# 不支持所谓的“贯穿”(fallthrough)行为,即在每个 `case` 后面都需要显式地...
在给定的文件 `Control_switchCase2_switchCase2.pdf` 中,示例代码展示了如何使用 `switch` 语句处理串行输入,并通过控制 LED 的亮灭来响应不同字符。以下是对这个知识点的详细解释: 首先,`switch` 语句通常...
在这个例子中,`dayOfWeek`的值为3,所以`switch`语句会匹配到`case 3`,输出"Wednesday",然后执行`break`退出`switch`。 值得注意的是,从Java SE 7开始,`switch`语句支持`String`类型的表达式,这使得在处理...
为了解决这一问题,Java 7引入了一个新特性——支持直接在`switch`语句中使用`String`类型的变量。本文将详细介绍如何在Java中利用`switch`语句与字符串进行条件判断,并提供一种在Java早期版本中通过自定义枚举(`...
在main函数中,定义了一个字符变量grade,用于存储输入的成绩等级...如果用户输入的成绩等级不在'A'、'B'、'C'、'D'、'F'范围内,则执行default语句,输出"Invalid grade!"。 使用break语句终止switch case语句的执行。
解决方法是确保`case`后的值在编写时已经确定,或者在`switch`之前先将变量转换为常量。 问题2:不会使用`break`来中断 `break`语句在`switch-case`结构中用于跳出当前`switch`块,防止执行后续的`case`。如果忘记...
因为 switch 语句只能用于整型表达式,而 float 类型的变量 w 不能用作 switch 语句的表达式。 问题 2 中,该程序的输出结果是 A) a=2,b=1。因为 switch 语句中,case 0: b++; 不会被执行,因为 x=1,不等于 0。...
在 Arduino 项目开发中,`switch-case` 语句是一个重要的控制结构,它允许程序根据变量的不同值执行不同的代码块。这个例子展示了如何在 Arduino 上使用 `switch-case` 结构来处理模拟输入(如光电传感器)的数据,...
3. 若a、b、c1、c2、x、y均是整型变量,正确的switch语句是switch(a+b);、switch(a*a+b*b)等,因为switch语句的控制表达式必须是整型的。 4. 下列程序段的输出结果是passwarn,因为switch语句的执行流程是从上往下...
### switch不能字符串比较解决方法 在Java编程语言中,`switch`语句是一种常见的选择结构,用于基于不同的条件执行不同的代码块。然而,在早期版本的Java(如Java 5及之前)中,`switch`语句只能用于整型变量、枚举...
通过分析"Case_Switch.vi",用户不仅可以了解Case和Switch的工作原理,还能学习到如何组织和设计具有复杂逻辑的LabVIEW程序。 总结来说,"Case_Switch.rar"中的案例提供了使用LabVIEW中的Case和Switch结构进行条件...
- `case`后的每个`value`必须是常量表达式,不能是变量或运行时计算的结果。 - `default`是可选的,当没有匹配的`case`时提供一个备选方案。 - `break`是可选的,但为了避免“贯穿”现象,通常在每个`case`后都应...
Java 变量的生命周期与作用域 Java 变量的生命周期是指变量从定义到销毁的整个过程,而作用域是指变量可以被访问的范围。在 Java 中,变量的生命周期和作用域是密切相关的。 变量的生命周期可以分为三个阶段:定义...