防止 Java 中的 Orphaned Case 错误
本文解释了如何防止 Java switch
语句中的孤立大小写错误。它将在示例中演示 switch
案例,并使用 Scanner 输入流使示例更加动态。
Java 中的 Orphaned Case 错误
在 Java 中,孤立错误并不常见。它与 switch
语句一起出现。
常见错误及解决方法:
-
Scanner 无法解析为类型。
- 如果你的编译器抛出此错误,则意味着你必须导入:import java.util.Scanner;
来使用这个功能。 -
java.util.InputMismatchException
- 如果检索到的令牌与指定类型的序列不匹配,或者如果令牌超出预期类型的范围,Scanner
将抛出此错误。
Java 中避免 switch
大小写错误的最佳实践
我们将语法示例放在以下代码块中,以避免所有 switch
语句的错误。
不正确:
Switch(demo);
{
Case(demo);
Case;
正确的:
switch (demo) {
case 1: // for integer type
case "String": // for string type
最佳实践:
-
你的
case
应该在你的switch
语句中。 -
永远不要在
case
语句中应用条件。 -
声明一个类型,然后将它传递给你的
switch
。不要指望switch
自行确定你的类型。
代码:
// Int Example
int num = 0;
switch (num) {
case 1: // your code
break; // if the condition is true, the case breaks
}
// String Example
String str = "A";
switch (str) {
case "str": // our code
// break;
}
让我们用 switch
案例制作出色的程序,同时避免罕见的孤立错误,如果现在很清楚的话。
使用 Java Scanner
输入流获取用户输入
以下是你应该了解的一些其他方法和参数,以充分理解此示例。
-
Scanner
- 创建一个新的Scanner
扫描提供的输入流并返回值。 -
next();
- 此Scanner
查找并返回下一个完整标记("")
。 -
nextInt();
- 它将输入的下一个标记扫描为int
。
参数:要扫描的数据流。
语法:
import java.util.Scanner;
public static void main(String[] args) {
// Extend Scanner in Java
Scanner demo = new Scanner(System.in);
System.out.println("Print Something");
String a = demo.next(); // used for string
int b = demo.nextInt(); // used for integers
}
//(System.in): Theinput stream.
我们只是在 Scanner 的帮助下获取输入流并将其分配给 demo
变量。
在 Java 中使用 Scanner
获取用户输入并应用 switch
案例
示例 1:
// example1
package AvoidError;
import java.util.Scanner;
public class PreventOrphanedCaseErrorExample1 {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner demo = new Scanner(System.in);
System.out.println("A");
System.out.println("B");
System.out.println("C");
System.out.println("D");
String a = demo.next();
switch (a) {
case "A":
System.out.println("You chose A");
break;
case "B":
System.out.println("You chose B");
break;
case "C":
System.out.println("You chose C");
break;
case "D":
System.out.println("You chose A");
break;
default:
System.out.println("You did not choose any value!");
break;
}
}
}
输出:
Java 中在 switch
中使用 while
循环重复获取用户数据
这个例子的不同之处只是一种更动态的方法,我们还将使用 equals();
方法,它比较字符串。
如果 true
,则返回给定对象;否则,它返回 false
。仔细检查以下代码。
示例 2:
// Example 2
package AvoidError;
import java.util.Scanner;
public class PreventOrphanedCaseErrorExample2 {
public static void main(String[] args) {
try (Scanner nxt = new Scanner(System.in)) {
while (true) {
System.out.println("1: Fruits");
System.out.println("2: Vegies");
System.out.println("3: Chicken");
System.out.println("Please select your choice!");
String i = nxt.next();
switch (i) {
case "1":
System.out.println("You chose Fruits");
break;
case "2":
System.out.println("You chose Vegies");
break;
case "3":
System.out.println("You chose Chicken");
break;
default:
System.out.println("Sorry! You did not choose from given options");
}
System.out.println("Do you want to repeat this operation?");
String REPEAT = nxt.next();
if (!REPEAT.equals("YES")) {
break;
}
}
}
}
}
输出:
我们存储了 nxt.next();
在字符串 REPEAT
中,然后设置一个简单的条件来检查 equals();
函数返回 true
。在这种情况下,它返回字符串的 YES
;因此,我们在 switch
语句中使用点得到了一个更加动态的程序。
通过这种理解,你可以使用一些 Java 和 switch
语句函数来做任何事情。
相关文章
Java 中的 volatile 关键字
发布时间:2023/11/13 浏览次数:173 分类:Java
-
本文讨论了 Java 中的 volatile 关键字及其优缺点,并举例说明了如何使用。Java 是一种非常流行的编程语言,通过了解 Java,我们可以很容易地理解它为什么会在编程社区中获得这样的地位。
Java 中的 StringUtils
发布时间:2023/11/13 浏览次数:80 分类:Java
-
本文介绍 Java 中的 StringUtils 类是什么。本文介绍什么是 StringUtils 以及如何在 Java 中使用它来处理字符串。StringUtils 是一个用于处理 String 的类,它提供了比 Java String 类更多的实用方法。
Java 中的 flatMap
发布时间:2023/11/13 浏览次数:132 分类:Java
-
本文介绍 flatMap 以及如何在 Java 中使用它。本文介绍 flatMap 以及如何在 Java 中使用它。flatMap 是 Java 流中的一个操作/函数,用于在执行某些功能性任务后获取新流。在这里,我们将讨论 flatMap
在 Java 中将 Stream 元素转换为映射
发布时间:2023/11/13 浏览次数:77 分类:Java
-
我们将使用 Java 将流元素转换为映射。我们将向你展示如何使用 Collectors.toMap() 从 Java 字符串中提取映射。我们将讨论 Java Streams 的实际用途以及如何将流元素转换为映射元素。
Java 中的 findFirst 流方法
发布时间:2023/11/13 浏览次数:171 分类:Java
-
本教程介绍 Java 中的 findFirst 流方法。java.util.stream API 是在 Java 8 中引入的;它用于处理对象的集合。不同的源(例如数组或集合)可以创建流。
Java 中的 Stream 的 reduce 操作
发布时间:2023/11/13 浏览次数:147 分类:Java
-
本文介绍 Java 中 stream 的 reduce 操作。本文将讨论 reduce() 操作细节并讨论它的一些示例。在讨论 reduce() 操作之前。让我们首先讨论减少。
Java 中的 reflection 是什么
发布时间:2023/11/13 浏览次数:79 分类:Java
-
本文介绍了 reflection 以及如何在 Java 中使用它。本文介绍 reflection 以及如何在 Java 中使用它。Java 有一个 reflection API 特性,它允许我们检查和修改类、接口等。
修复 Java 未解决的编译错误
发布时间:2023/11/13 浏览次数:141 分类:Java
-
本文介绍如何修复 Java 中未解决的编译错误。Java 在三个组件上工作:JVM、JRE 和 JDK。JVM(Java 虚拟机)在物理上并不存在,它提供了运行字节码的环境。
修复 Java cannot be resolved to a variable 错误
发布时间:2023/11/13 浏览次数:64 分类:Java
-
修复 Java cannot be resolved to a variable 错误本指南将教你如何修复 Java 中的 cannot be resolved to a variable 错误。