0

私はこのプログラムコードを持っています。ユーザーが「Three」などの文字列形式で入力を入力すると、そのプログラムにエラーメッセージが表示され、プログラムを再実行せずに適切な入力を再度ユーザーに促します。しかし、プログラムは再び入力を受け取りません。

//Program to get radius form user & calculate area of circle.
import java.util.InputMismatchException;
import java.util.Scanner;

public class AreaOfCircle {
public static void main(String[] args) {
    final float PI=3.14f;
    double rad=0.0;
    Scanner input=new Scanner(System.in);
    while(true){
        try {
            System.out.println("Enter radius of circle: ");
            rad = input.nextDouble();
            break;
            } 
            catch (InputMismatchException e) {
                System.out.println("Please enter radius in proper  format");
            }
        }
    System.out.println("Area of circle is: "+(PI*rad*rad));
}

}

出来上がりはこんな感じ。

Enter radius of circle: 
Three
Please enter radius in proper  format
Enter radius of circle: 
Please enter radius in proper  format
Enter radius of circle: 
Please enter radius in proper  format
Enter radius of circle: 
Please enter radius in proper  format
(infitely...)
4

1 に答える 1

1

間違った入力がまだスキャナにあります。input.nextLine()catch 句でa を実行してみてください。

于 2012-12-24T06:51:06.333 に答える