0

おそらく明らかなことですが、ユーザーが有効な値を入力するまで値を入力し続けるように強制しようとすると、変数を解決できないというエラーが表示されます。

次に、事前に宣言すると、値が重複しているというエラーが表示されます。

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

コンパイラは、do心配する前に、最初にステートメントを実行することになっていませんwhileか?

4

3 に答える 3

3

ループの前に宣言しx、以下のようにスコープをより広くします。

float x = 0.0f;
do {
    x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"); 
} while (x != 1);
于 2012-10-31T11:42:57.200 に答える
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"));
}

コードに閉じ括弧がないことにも注意してください。

于 2012-10-31T11:44:10.403 に答える
0
 float x=0.0f;
     do{
        x = Float.parseFloat(javax.swing.JOptionPane.showInputDialog("Enter 1"));
         }
         while (x != 1);

エラーの原因は、 while 条件変数の中で見えない を内部で宣言し 、のx最後で抜けていることです。loopxclosing parenthesisinitialization

間違っている場合は訂正してください

于 2012-10-31T11:48:54.130 に答える