Java中的 Switch Case 中的字符串
switch 语句是多路分支语句。它提供了一种简单的方法,可以根据表达式的值将执行分派到代码的不同部分。基本上,表达式可以是 byte、short、char 和 int 原始数据类型。从 JDK7 开始,它也适用于枚举类型( Java中的 Enums)、String 类和 Wrapper 类。
因此,在 JDK 7 中,switch 语句中的字符串概念开始发挥作用,因为我们可以使用字符串字面量或常量来控制 switch 语句,这在 C/C++ 中是不可能的。使用基于字符串的开关是对使用等效的 if/else 语句序列的改进。我们现在将字符串声明为 String 类对象,如下所示:
插图:
String geeks = "GeeksforGeeks" ; // Valid from JDK7 and onwards
Object geeks = "GeeksforGeeks" ; // Invalid from JDK7 and onwards
使用 switch 语句时需要记住一些关键点,因为它确实提供了便利,但同时也起到了双刃剑的作用,因此我们最好通过列出的特征:
1. 昂贵的操作:在执行方面,打开字符串可能比打开原始数据类型更昂贵。因此,最好仅在控制数据已经是字符串形式的情况下才打开字符串。
2. String 不应该为 NULL:确保任何 switch 语句中的表达式在处理字符串时不为 null,以防止在运行时抛出 NullPointerException。
3.区分大小写比较: switch语句将其表达式中的String对象与每个case标签关联的表达式进行比较,就好像它使用String类的equals()方法一样,因此switch语句中String对象的比较是区分大小写的.
4. 比 if-else 更好: Java编译器从使用 String 对象的 switch 语句生成的字节码通常比从链式 if-then-else 语句生成的字节码更有效。
示例 1:
Java
// Java Program to Demonstrate use of String to
// Control a Switch Statement
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Custom input string
String str = "two";
// Switch statement over above string
switch (str) {
// Case 1
case "one":
// Print statement corresponding case
System.out.println("one");
// break keyword terminates the
// code execution here itself
break;
// Case 2
case "two":
// Print statement corresponding case
System.out.println("two");
break;
// Case 3
case "three":
// Print statement corresponding case
System.out.println("three");
break;
// Case 4
// Default case
default:
// Print statement corresponding case
System.out.println("no match");
}
}
}
Java
// Java Program to Demonstrate use of String to
// Control a Switch Statement
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Custom input string
// Null string is passed
String str = "";
// Switch statement over above string
switch (str) {
// Case 1
case "one":
// Print statement corresponding case
System.out.println("one");
// break keyword terminates the
// code execution here itself
break;
// Case 2
case "two":
// Print statement corresponding case
System.out.println("two");
break;
// Case 3
case "three":
// Print statement corresponding case
System.out.println("three");
break;
// Case 4
// Default case
default:
// Print statement corresponding case
System.out.println("no match");
}
}
}
two
示例 2:
Java
// Java Program to Demonstrate use of String to
// Control a Switch Statement
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Custom input string
// Null string is passed
String str = "";
// Switch statement over above string
switch (str) {
// Case 1
case "one":
// Print statement corresponding case
System.out.println("one");
// break keyword terminates the
// code execution here itself
break;
// Case 2
case "two":
// Print statement corresponding case
System.out.println("two");
break;
// Case 3
case "three":
// Print statement corresponding case
System.out.println("three");
break;
// Case 4
// Default case
default:
// Print statement corresponding case
System.out.println("no match");
}
}
}
no match