在要求用户输入变量后,无法解析为变量
这可能是显而易见的事情,但是当我试图强制用户继续输入值直到他输入有效值时,我得到一个错误,该变量无法解析。
然后,如果我事先声明它,我会收到一个错误的重复值。
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);
导致错误的原因是,您已声明loop
的x
不可见,而条件变量x
和closing parenthesis
在initialization
结束时已被遗漏。
如果错了,请纠正我