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

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

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

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

编译器是不是应该首先执行do语句,然后再担心呢?

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

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

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

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

尝试:

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

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

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

导致错误的原因是,您已声明loopx不可见,而条件变量xclosing parenthesisinitialization结束时已被遗漏。

如果错了,请纠正我