int i=0;
int c=0;
int a=0;
int b=0;
String stringy;
String input;
do { //loop for value a
try // try-catch to prevent program from crashing
{
stringy= JOptionPane.showInputDialog("Type a value for a or press q to quit:");
if (stringy.equalsIgnoreCase("q")) System.exit(0);
a = Integer.parseInt(stringy);
i++;
} catch (Exception e) {
stringy= JOptionPane.showInputDialog("Error. Try Again! ");
} // end catch
} while(i==0); // end loop
输出会生成一个jOption输入对话框("type a value...")
,当我输入字符串或系统不期望的内容时,它会转到"catch"
并弹出"error try again!"
但是当我输入任何内容时,即使它是一个数字,它也会返回到(“键入值...”)对话框。我希望它在错误框中读取输入而不是跳回到第一个对话框。谢谢你的帮助!
答案 0 :(得分:1)
如果要使用来自catch()
的输入,则应将基本输入取消循环。
并使用break;
子句代替while(i==0)
和i++
;
stringy= JOptionPane.showInputDialog("Type a value for a or press q to quit: ");
while(true)
{
if (stringy.equalsIgnoreCase("q")) System.exit(0);
try {
a = Integer.parseInt(stringy);
break;
} catch (Exception e) {
stringy= JOptionPane.showInputDialog("Error. Try Again! ");
}
}
JoptionPane.showMessageDialog("Input accepted!");
请以正确的格式编写代码,你在周期开始时评论了'{'。
答案 1 :(得分:0)
您显然必须检查第二个对话框的输入,类似于以下内容:
stringy = JOptionPane.showInputDialog("Error. Try Again! ");
if (stringy.equalsIgnoreCase("q")) {
System.exit(0);
}
答案 2 :(得分:0)
如何为输出添加字符串。
String input;
String output = "Type a value for a or press q to quit: "
do //loop for value a {
try // try-catch to prevent program from crashing
{
stringy= JOptionPane.showInputDialog(output);
if (stringy.equalsIgnoreCase("q"))
{
System.exit(0);
}
a= Integer.parseInt(stringy);
i++;
}
catch (Exception e)
{
output= "Error. Try Again! ";
}