这可能很明显,但是当我试图强制用户继续输入一个值直到他输入一个有效值时,我收到一个错误,即无法解析变量。
然后,如果我事先声明它,我会收到一个错误,说重复值。
do {
float x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1");
} while (x != 1);
编译器不应该先执行do
语句,然后再担心while
?
这可能很明显,但是当我试图强制用户继续输入一个值直到他输入一个有效值时,我收到一个错误,即无法解析变量。
然后,如果我事先声明它,我会收到一个错误,说重复值。
do {
float x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1");
} while (x != 1);
编译器不应该先执行do
语句,然后再担心while
?
在循环之前声明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);
错误的原因是,您在 while 条件变量中声明了它的x
内部不可见, 并且在结尾处被遗漏了。loop
x
closing parenthesis
initialization
如果错了请纠正我