时间:2017-03-11 20:38:31

标签: java oop try-catch do-while

嘿,我是java新手,我希望你能帮助我们。

我试图尝试并尝试使用do,但我的尝试失败了。

基本上我想要的是:

我正在尝试构建这个图书管理系统,我有一个菜单,包括Guest,Administrator,Librarian和Exit。

因此,每当我输入不在1到4范围内的无效数字时,我希望它显示我的消息,该数字无效,每当我输入字母表时,我希望它显示错误,说我应该输入一个整数。

我一直试图解决,但我无法解决。

任何帮助都将不胜感激。

这是我的代码:

package excercises;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Excercises {

    public static void main(String[] args) {
    int ch;
    Scanner input = new Scanner(System.in);

    do{
        try{
            System.out.println("1- GUEST");
            System.out.println("2- ADMINISTRATOR");
            System.out.println("3- LIBRARIAN");
            System.out.println("4- EXIT");
            System.out.println("* SELECT CHOICE: ");
            ch = input.nextInt();

            if (ch == 1)
                System.out.println("WELCOME GUEST \n");
            else if (ch == 2)
                     System.out.println("WELCOME ADMIN \n");
                 else if (ch == 3)
                          System.out.println("WELCOME LIBRARIAN \n");
                      else if (ch == 4)
                               System.out.println("THANK YOU , SEE YA SOON");
                           else
                               System.out.println("\t\n WRONG CHOICE PLEASE ENTER A VALID NUMBAAA \n");

            }
            catch(Exception e){
                System.out.println("input should be integer, EXITING ..");
            }    
    }while (ch !=4);


    }  
}

1 个答案:

答案 0 :(得分:0)

我改变了你的代码看看:

public static void main(String[] args) {
     String ch = null;
        Scanner input = new Scanner(System.in);

            System.out.println("1- GUEST");
            System.out.println("2- ADMINISTRATOR");
            System.out.println("3- LIBRARIAN");
            System.out.println("4- EXIT");



            boolean test = false;

            while (test == false) {
                 System.out.println("* SELECT CHOICE: ");
                String regex = "\\d+";
                ch = input.next();
                test = ch.matches(regex);
                if (test == false) {
                    System.out.println("There is a problem try again");
                }
                else if(Integer.valueOf(ch) > 4 ||  Integer.valueOf(ch) < 1){
                     System.out.println("Select a number from 1 to 4");
                     test =false;
                }
            }


            if (ch.equals("1"))
                System.out.println("WELCOME GUEST \n");
            else if (ch.equals("2"))
                System.out.println("WELCOME ADMIN \n");
            else if (ch.equals("3"))
                System.out.println("WELCOME LIBRARIAN \n");
            else if (ch.equals("4"))
                System.out.println("THANK YOU , SEE YA SOON");
            else
                System.out.println("\t\n WRONG CHOICE PLEASE ENTER A VALID NUMBAAA \n");



    }  

我决定使用你在这里可以看到的最后一个答案:

Integer-restricted only?

希望它可以帮到你