Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试着边做边接球_Java_Oop_Try Catch_Do While - Fatal编程技术网

Java 试着边做边接球

Java 试着边做边接球,java,oop,try-catch,do-while,Java,Oop,Try Catch,Do While,嘿,我是java新手,我希望你们能帮助我 我试着用do做try和catch的工作,但是我的尝试失败了 基本上我想要的是: 我正在尝试建立这个图书馆管理系统,我有一个菜单,其中包括来宾、管理员、图书管理员和出口 因此,每当我输入不在1到4范围内的无效数字时,我希望它显示我的信息,即该数字无效;每当我输入字母表时,我希望它显示一个错误,说明我应该输入一个整数 我一直在试图解决这个问题,但我解决不了 任何帮助都将不胜感激 这是我的代码: package excercises; import java.

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

我试着用do做try和catch的工作,但是我的尝试失败了

基本上我想要的是:

我正在尝试建立这个图书馆管理系统,我有一个菜单,其中包括来宾、管理员、图书管理员和出口

因此,每当我输入不在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);


    }  
}

我改变了你的代码看看这个:

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");



    }  
publicstaticvoidmain(字符串[]args){
字符串ch=null;
扫描仪输入=新扫描仪(System.in);
System.out.println(“1-来宾”);
System.out.println(“2-管理员”);
System.out.println(“3-图书管理员”);
System.out.println(“4-退出”);
布尔检验=假;
while(test==false){
System.out.println(“*选择:”);
字符串regex=“\\d+”;
ch=input.next();
test=ch.matches(正则表达式);
如果(测试==错误){
System.out.println(“出现问题,请重试”);
}
else如果(整型.valueOf(ch)>4 | |整型.valueOf(ch)<1){
System.out.println(“从1到4中选择一个数字”);
测试=假;
}
}
如果(ch.equals(“1”))
System.out.println(“欢迎来宾\n”);
否则,如果(ch.equals(“2”))
System.out.println(“欢迎管理员”);
否则,如果(ch.equals(“3”))
System.out.println(“欢迎图书管理员”\n);
否则,如果(ch.equals(“4”))
System.out.println(“谢谢,再见”);
其他的
System.out.println(“\t\n选择错误,请输入有效的\n”);
}  
我决定使用我的最后一个答案,你可以在这里看到:


希望对您有所帮助

欢迎来到Stack Overflow!看起来你可能在请求家庭作业帮助。虽然我们对此本身没有问题,但请注意这些,并相应地编辑您的问题。(即使这不是家庭作业,也请考虑这个建议。)你的程序的行为与你想要的方式不同,请给出精确的副本。你应该(1)几乎从不捕捉<代码>异常< /代码>,并且(2)永远不要“吞咽”错误(如果异常是代码> EOFExcExoS?)我认为,如果您能解释询问者的代码出了什么问题,那就更有用了,而不仅仅是发布更正后的代码;这里有一个问题,如果用户使用字符而不是数字,如果(ch==1)这里有另一个问题,他认为用户使用了一个数字,do-while用worng的方式,do-while应该至少使用一次,你知道我的意思吗?至少运行一次我的代码,如果它是真的再次运行ti等。。。在他尝试的时候使用它是不好的,解释这一切会花费我太长时间,我不明白为什么我应该这样做,而他们没有问为什么