java - 我应该使用什么返回语句才能使用针对非整数值引发异常的菜单?

标签 java oop methods exception

我正在制定待办事项列表,目前正在制作菜单。该菜单接收来自数字 1-6 的用户的输入,并执行与该数字(int)相关的特定任务。这是完美的场景,所以我需要菜单能够接受非整数值,并且不会变砖,并向用户显示错误消息。我认为我已经创建了一种向用户询问整数的有效方法,而不会使程序变砖,但我无法确定我的返回语句应该是什么,以便利用 main.c 中的方法。我将在 switch 语句中使用它,如下所示:

         while (true) {
        switch (getMenuOption()) {
            case 1:
            etc

这是我当前使用的 getMenuOption 方法。我应该使用什么返回语句,或者是否有更有效的方法来执行此操作?

package project1_martinez_adriel;

import java.util.Scanner;

public class getMenuOption {
    public static int getMenuOption() {    
 Scanner input = new Scanner(System.in);
        System.out.println(" 1. Create a new item \n 2. Mark an item as in progress \n 3. Mark an item as completed \n 4. List all to do items \n 5. Remove completed items \n 6. Exit \n What would you like to do? \n ");
        String value = input.nextLine();
        int num;
        try {
            num = Integer.parseInt(value);
            if (!(num == 1 || num == 2 || num == 3 || num == 4 || num == 5 || num == 6)) {
                System.out.println("ERROR! Invalid choice! \nPlease enter a valid choice BETWEEN 1 & 6: ");
            }else if (num == 6){
            System.exit(0);
        }


        } catch (NumberFormatException e) {
            System.out.println("ERROR! Please enter a valid INTEGER between 1 & 6.");
        }

        return //What do I put here!?

    }

最佳答案

清理一下怎么样

if (num < 1 || num > 6) {
   System.out.println("ERROR! Invalid choice!...");
}

然后稍后

return num;

switch 语句中的代码应处理 1 && 6 之间的选项,其中 6System.exit (0);

我什至会在 switch default block 中看到错误消息

编辑

num 还应该用一个值初始化,例如

int num = -1;

关于java - 我应该使用什么返回语句才能使用针对非整数值引发异常的菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274403/

相关文章:

java - Java 中的 "undefined symbol: SQLAllocEnv"错误

java - 如果我通过 Hostgator 购买了 SSl,我该如何签署 Java 小程序

java - 移动一个矩形非常不稳定

java - 方法中的 charAt 不起作用

java - 链表 - insert before 方法会导致链表永远持续下去

java - 即使在@CrossOrigin注释之后,Spring Boot CORS也不起作用

php - PHP 7 中的类型提示 - 对象数组

Java继承: How to declare a static variable in Super and instantiate it in subclass

PHP:何时使用类上的 namespace 进行分组?

javascript - 在 react 中调用作为 Prop 传递的方法