对这里发生的事情感到有些困惑。例如,该错误陷阱的点是用户输入3个数字/字母而不是4位数字。这个错误陷阱被设计循环问题,直到用户正确。但是它反而循环错误消息。任何人都可以就发生的事情提供一些指示吗?
JFrame Error = new JFrame ();
String input = JOptionPane.showInputDialog(null,"Enter the 4 digit resistor values:");
while (true){
try{
int numInput = Integer.parseInt (input);
if (numInput >= 1000) {
break;
}
else {
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
catch (Exception e){
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
答案 0 :(得分:0)
您需要移动代码以询问输入到循环。
JFrame Error = new JFrame ();
String input = null;
while (true){
try{
input = JOptionPane.showInputDialog(null,"Enter the 4 digit resistor values:");
int numInput = Integer.parseInt (input);
if (numInput >= 1000) {
break;
}
else {
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
catch (Exception e){
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
答案 1 :(得分:0)
正如JacobM所提到的,你需要在while循环中询问输入。当catch子句终止时,你的代码所做的下一件事就是while循环中的第一件事。
JFrame Error = new JFrame ();
while (true){
String input = JOptionPane.showInputDialog(null,"Enter the 4 digit resistor values:");
try{
int numInput = Integer.parseInt (input);
if (numInput >= 1000) {
break;
}
else {
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
catch (Exception e){
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
答案 2 :(得分:-1)
你需要在循环中要求一个新值 。将其更改为:
String input;
try {
while (true){
input = JOptionPane.showInputDialog(null,"Enter the 4 digit resistor values:");
int numInput = Integer.parseInt (input);
if (numInput >= 1000) {
break;
}
else {
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(Error,"Invalid Input.");
}