迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

防止 Java 中的 Orphaned Case 错误

作者:迹忆客 最近更新:2023/11/13 浏览次数:

本文解释了如何防止 Java switch 语句中的孤立大小写错误。它将在示例中演示 switch 案例,并使用 Scanner 输入流使示例更加动态。


Java 中的 Orphaned Case 错误

在 Java 中,孤立错误并不常见。它与 switch 语句一起出现。

常见错误及解决方法:

  1. Scanner 无法解析为类型。 - 如果你的编译器抛出此错误,则意味着你必须导入:import java.util.Scanner; 来使用这个功能。
  2. java.util.InputMismatchException - 如果检索到的令牌与指定类型的序列不匹配,或者如果令牌超出预期类型的​​范围,Scanner 将抛出此错误。

Java 中避免 switch 大小写错误的最佳实践

我们将语法示例放在以下代码块中,以避免所有 switch 语句的错误。

不正确:

Switch(demo);
{
  Case(demo);
  Case;

正确的:

switch (demo) {
  case 1: // for integer type
  case "String": // for string type

最佳实践:

  1. 你的 case 应该在你的 switch 语句中。
  2. 永远不要在 case 语句中应用条件。
  3. 声明一个类型,然后将它传递给你的 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 输入流获取用户输入

以下是你应该了解的一些其他方法和参数,以充分理解此示例。

  1. Scanner - 创建一个新的 Scanner 扫描提供的输入流并返回值。
  2. next(); - 此 Scanner 查找并返回下一个完整标记 ("")
  3. 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;
    }
  }
}

输出:

使用 Scanner 获取用户输入并应用 Switch Case


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;
        }
      }
    }
  }
}

输出:

在 Switch 中使用 While 循环,重复获取用户数据

我们存储了 nxt.next(); 在字符串 REPEAT 中,然后设置一个简单的条件来检查 equals(); 函数返回 true。在这种情况下,它返回字符串的 YES;因此,我们在 switch 语句中使用点得到了一个更加动态的程序。

通过这种理解,你可以使用一些 Java 和 switch 语句函数来做任何事情。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中延迟几秒钟的时间

发布时间:2023/12/17 浏览次数:217 分类:Java

本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。

如何在 Java 中把 Hashmap 转换为 JSON 对象

发布时间:2023/12/17 浏览次数:187 分类:Java

它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。

如何在 Java 中按值排序 Map

发布时间:2023/12/17 浏览次数:171 分类:Java

本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map 进行排序,并列出了一些示例代码来理解它。

如何在 Java 中打印 HashMap

发布时间:2023/12/17 浏览次数:192 分类:Java

本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。

在 Java 中更新 Hashmap 的值

发布时间:2023/12/17 浏览次数:146 分类:Java

本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。

Java 中的 hashmap 和 map 之间的区别

发布时间:2023/12/17 浏览次数:79 分类:Java

本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,

在 Java 中获取用户主目录

发布时间:2023/12/17 浏览次数:218 分类:Java

这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。

Java 中 size 和 length 的区别

发布时间:2023/12/17 浏览次数:179 分类:Java

这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。

Java 中的互斥锁

发布时间:2023/12/17 浏览次数:111 分类:Java

了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便