Java 如何在我的代码中添加try,catch语句以只接受整数值?
我正在创建一个JOptionPane对话框,从用户那里获取输入,以选择他们想要购买的蛋糕类型,但我只想输入一个整数值。我对java编程非常陌生,需要使用try,catch来获得整数值的帮助 我已经创建了“Cakes[]”数组来存储和检索蛋糕的味道、价格和剩余蛋糕的数量Java 如何在我的代码中添加try,catch语句以只接受整数值?,java,Java,我正在创建一个JOptionPane对话框,从用户那里获取输入,以选择他们想要购买的蛋糕类型,但我只想输入一个整数值。我对java编程非常陌生,需要使用try,catch来获得整数值的帮助 我已经创建了“Cakes[]”数组来存储和检索蛋糕的味道、价格和剩余蛋糕的数量 do { do { String userinput = JOptionPane.showInputDialog(null, "Enter your choice of cake:" +
do {
do {
String userinput = JOptionPane.showInputDialog(null, "Enter your choice of cake:"
+ "\n" + "1." + Cakes[0].getflavorofcake() + "(" + Cakes[0].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[0].getnofcaksleft()
+ "\n" + "2." + Cakes[1].getflavorofcake() + "(" + Cakes[1].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[1].getnofcaksleft()
+ "\n" + "3." + Cakes[2].getflavorofcake() + "(" + Cakes[2].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[2].getnofcaksleft()
+ "\n" + "4." + Cakes[3].getflavorofcake() + "(" + Cakes[3].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[3].getnofcaksleft()
+ "\n" + "5." + Cakes[4].getflavorofcake() + "(" + Cakes[4].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[4].getnofcaksleft(), "mini cake shop", JOptionPane.QUESTION_MESSAGE);
choiceofcake = Integer.parseInt(userinput);
showthatthereisnocakesleft(choiceofcake);//Method called to show user that the choiceofcake chosen is no longer available
} while (Cakes[choiceofcake - 1].getnofcaksleft() < 1);
if (choiceofcake > 5 || choiceofcake < 1) {
JOptionPane.showMessageDialog(null, "Invalid input! Please enter in the range from 1 to 5", "Error", JOptionPane.ERROR_MESSAGE);
}
} while (choiceofcake > 5 || choiceofcake < 1);
do{
做{
String userinput=JOptionPane.showInputDialog(null,“输入您选择的蛋糕:”
+“\n”+“1.”+蛋糕[0]。GetFlavofCake()+”(“+Cakes[0]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[0]。getnofcaksleft()
+“\n”+“2.”+蛋糕[1]。GetFlavofCake()+”(“+Cakes[1]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[1]。getnofcaksleft()
+“\n”+“3.”+蛋糕[2]。GetFlavofCake()+”(“+Cakes[2]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[2]。getnofcaksleft()
+“\n”+“4.”+蛋糕[3]。GetFlavofCake()+”(“+Cakes[3]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[3]。getnofcaksleft()
+“\n”+“5.”+蛋糕[4]。GetFlavofCake()+”(“+Cakes[4]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[4]。getnofcaksleft(),“迷你蛋糕店”,JOptionPane。问题消息);
choiceofcake=Integer.parseInt(userinput);
showthatheresnocakesleft(choiceofcake);//调用方法向用户显示所选的choiceofcake不再可用
}while(Cakes[choiceofcake-1].getnofcaksleft()<1);
如果(ChoiceOffCake>5 | | ChoiceOffCake<1){
JOptionPane.showMessageDialog(null,“无效输入!请输入1到5的范围”,“错误”,JOptionPane.Error\u消息);
}
}而(choiceofcake>5 | | choiceofcake<1);
假设您希望循环继续,即使在输入错误的情况下,也可以尝试以下操作:
do {
String userinput = JOptionPane.showInputDialog(null, "Enter your choice of cake:" +
"\n" + "1." + Cakes[0].getflavorofcake() + "(" + Cakes[0].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[0].getnofcaksleft() +
"\n" + "2." + Cakes[1].getflavorofcake() + "(" + Cakes[1].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[1].getnofcaksleft() +
"\n" + "3." + Cakes[2].getflavorofcake() + "(" + Cakes[2].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[2].getnofcaksleft() +
"\n" + "4." + Cakes[3].getflavorofcake() + "(" + Cakes[3].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[3].getnofcaksleft() +
"\n" + "5." + Cakes[4].getflavorofcake() + "(" + Cakes[4].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[4].getnofcaksleft(), "mini cake shop", JOptionPane.QUESTION_MESSAGE);
choiceofcake = Integer.parseInt(userinput);
if (choiceofcake > 5 || choiceofcake < 1) {
JOptionPane.showMessageDialog(null, "Invalid input! Please enter in the range from 1 to 5", "Error", JOptionPane.ERROR_MESSAGE);
}
else {
showthatthereisnocakesleft(choiceofcake);
}
} while (Cakes[choiceofcake - 1].getnofcaksleft() < 1);
do{
String userinput=JOptionPane.showInputDialog(null,“输入您选择的蛋糕:”+
“\n”+“1.”+蛋糕[0]。GetFlavofCake()+”(“+Cakes[0]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[0]。getnofcaksleft()+
“\n”+“2.”+蛋糕[1]。GetFlavofCake()+”(“+Cakes[1]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[1]。getnofcaksleft()+
“\n”+“3.”+蛋糕[2]。GetFlavofCake()+”(“+Cakes[2]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[2]。getnofcaksleft()+
“\n”+“4.”+蛋糕[3]。GetFlavofCake()+”(“+Cakes[3]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[3]。getnofcaksleft()+
“\n”+“5.”+蛋糕[4]。GetFlavofCake()+”(“+Cakes[4]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[4]。getnofcaksleft(),“迷你蛋糕店”,JOptionPane。问题消息);
choiceofcake=Integer.parseInt(userinput);
如果(ChoiceOffCake>5 | | ChoiceOffCake<1){
JOptionPane.showMessageDialog(null,“无效输入!请输入1到5的范围”,“错误”,JOptionPane.Error\u消息);
}
否则{
显示没有akesleft(choiceofcake);
}
}while(Cakes[choiceofcake-1].getnofcaksleft()<1);
如果您希望循环在一个坏的输入上完全停止,那么考虑在发生这种情况时抛出一个<代码> ILLALGALGUMUMENTRONUT/<代码> .< /P> < P>假设您希望循环继续,即使在输入不好的情况下,也可以尝试类似:
do {
String userinput = JOptionPane.showInputDialog(null, "Enter your choice of cake:" +
"\n" + "1." + Cakes[0].getflavorofcake() + "(" + Cakes[0].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[0].getnofcaksleft() +
"\n" + "2." + Cakes[1].getflavorofcake() + "(" + Cakes[1].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[1].getnofcaksleft() +
"\n" + "3." + Cakes[2].getflavorofcake() + "(" + Cakes[2].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[2].getnofcaksleft() +
"\n" + "4." + Cakes[3].getflavorofcake() + "(" + Cakes[3].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[3].getnofcaksleft() +
"\n" + "5." + Cakes[4].getflavorofcake() + "(" + Cakes[4].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[4].getnofcaksleft(), "mini cake shop", JOptionPane.QUESTION_MESSAGE);
choiceofcake = Integer.parseInt(userinput);
if (choiceofcake > 5 || choiceofcake < 1) {
JOptionPane.showMessageDialog(null, "Invalid input! Please enter in the range from 1 to 5", "Error", JOptionPane.ERROR_MESSAGE);
}
else {
showthatthereisnocakesleft(choiceofcake);
}
} while (Cakes[choiceofcake - 1].getnofcaksleft() < 1);
do{
String userinput=JOptionPane.showInputDialog(null,“输入您选择的蛋糕:”+
“\n”+“1.”+蛋糕[0]。GetFlavofCake()+”(“+Cakes[0]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[0]。getnofcaksleft()+
“\n”+“2.”+蛋糕[1]。GetFlavofCake()+”(“+Cakes[1]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[1]。getnofcaksleft()+
“\n”+“3.”+蛋糕[2]。GetFlavofCake()+”(“+Cakes[2]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[2]。getnofcaksleft()+
“\n”+“4.”+蛋糕[3]。GetFlavofCake()+”(“+Cakes[3]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[3]。getnofcaksleft()+
“\n”+“5.”+蛋糕[4]。GetFlavofCake()+”(“+Cakes[4]。getpriceofcake()+“美分”+”)“+”可用蛋糕数量:“+Cakes[4]。getnofcaksleft(),“迷你蛋糕店”,JOptionPane。问题消息);
choiceofcake=Integer.parseInt(userinput);
如果(ChoiceOffCake>5 | | ChoiceOffCake<1){
JOptionPane.showMessageDialog(null,“无效输入!请输入1到5的范围”,“错误”,JOptionPane.Error\u消息);
}
否则{
显示没有akesleft(choiceofcake);
}
}while(Cakes[choiceofcake-1].getnofcaksleft()<1);
如果您希望循环在一个坏的输入上完全停止,那么考虑在发生这种情况时抛出一个<代码> ILLALGALGUMUMETRONUT/<代码>。< /P>
包装
choiceofcake = Integer.parseInt(userinput);
试一试
try {
choiceofcake = Integer.parseInt(userinput);
if (choiceofcake > 5 || choiceofcake < 1) {
break;
}
} catch (NumberFormatException ee) {
ee.printStatckTrace ();
continue;
}
试试看{
choiceofcake=Integer.parseInt(userinput);
如果(ChoiceOffCake>5 | | ChoiceOffCake<1){
打破
}
}捕获(NumberFormatException ee){
ee.printStatckTrace();
继续;
}
将
choiceofcake = Integer.parseInt(userinput);
试一试
try {
choiceofcake = Integer.parseInt(userinput);
if (choiceofcake > 5 || choiceofcake < 1) {
break;
}
} catch (NumberFormatException ee) {
ee.printStatckTrace ();
continue;
}
试试看{
choiceofcake=Integer.parseInt(userinput);
如果(ChoiceOffCake>5 | | ChoiceOffCake<1){
打破
}
}捕获(NumberFormatException ee){
ee.printStatckTrace();
继续;
}
您可以添加try-catch语句,以便在用户输入错误值时,您可以显示其错误,而不是终止程序:
do {
String userinput = JOptionPane.showInputDialog(null, "Enter your choice of cake:" +
"\n" + "1." + Cakes[0].getflavorofcake() + "(" + Cakes[0].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[0].getnofcaksleft() +
"\n" + "2." + Cakes[1].getflavorofcake() + "(" + Cakes[1].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[1].getnofcaksleft() +
"\n" + "3." + Cakes[2].getflavorofcake() + "(" + Cakes[2].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[2].getnofcaksleft() +
"\n" + "4." + Cakes[3].getflavorofcake() + "(" + Cakes[3].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[3].getnofcaksleft() +
"\n" + "5." + Cakes[4].getflavorofcake() + "(" + Cakes[4].getpriceofcake() + "cents" + ")" + " no. of cakes available:" + Cakes[4].getnofcaksleft(), "mini cake shop", JOptionPane.QUESTION_MESSAGE);
try{
choiceofcake = Integer.parseInt(userinput);
if (choiceofcake > 5 || choiceofcake < 1) {
JOptionPane.showMessageDialog(null, "Invalid input! Please enter in the range from 1 to 5", "Error", JOptionPane.ERROR_MESSAGE);
}
else {
showthatthereisnocakesleft(choiceofcake);
}
}catch(NumberFormatException e){
// e.printStackTrace();
}catch(Exception e){
// e.printStackTrace();
}
} while (Cakes[choiceofcake - 1].getnofcaksleft() < 1);
do{
String userinput=JOptionPane.showInputDialog(null,“输入您选择的蛋糕:”+
“\n”+“1”。+蛋糕[0]。GetFlavofCake()+”(“+蛋糕[0]。getpriceofcake()+“美分”+”)+“蛋糕数量”