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