在要求用户输入变量后,无法解析为变量

时间:2012-10-31 11:41:35

标签: java

这可能是显而易见的事情,但是当我试图强制用户继续输入值直到他输入有效值时,我得到一个错误,该变量无法解析。

然后,如果我事先声明它,我会收到错误的重复值。

do {
    float x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1");
} while (x != 1);

编译器是否应该首先执行do语句,然后再担心while

3 个答案:

答案 0 :(得分:3)

在循环之前声明x,使其范围更加像下面那样:

float x = 0.0f;
do {
    x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"); 
} while (x != 1);

答案 1 :(得分:0)

是的,这是显而易见的事情。

你在块中声明变量,这意味着一旦你到达块的末尾它就会停止存在。块的结尾是}

尝试:

float x;
do {
    Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"));
} while(x != 1);

或者:

float x = 0;
while(x != 1) {
    Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"));
}

请注意代码中缺少的结束括号。

答案 2 :(得分:0)

 float x=0.0f;
     do{
        x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"));
         }
         while (x != 1);

导致错误的原因是,您已声明x内的loop不可见,而条件变量xclosing parenthesis在结束时遗漏了initialization

如果错了,请纠正我