2013-04-07 57 views
0

只是有点困惑,这里发生了什么。例如,该错误陷阱的重点在于用户输入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."); 

    } 
} 
+1

要求输入的行不在循环中。 – 2013-04-07 03:12:59

回答

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

你要问一个新的价值,循环。将其更改为:

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."); 
} 
+1

如何不需要尝试捕捉?如果用户输入abcd(这种类型的输入*在问题中被解决了)怎么办? – chris 2013-04-07 03:15:04

+0

@chris哦,会解决这个问题。 – Mordechai 2013-04-07 03:29:57

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

    } 
}