编写一个程序,要求从键盘输入一个圆的半径(double类型),计算并输出圆的面积。在没有加入异常处理机制时,输入的数据不是double型数据(如字符串“abc”)会产生什么结果?加入异常处理机制后,让程序在输入不正确的类型数据时给出错误提示并要求重新输入。 java
时间: 2024-01-21 07:17:24 浏览: 79
使用异常处理机制和输入/输出处理机制编写一个程序
4星 · 用户满意度95%
以下是未加入异常处理机制的程序代码:
```java
import java.util.Scanner;
public class CircleArea {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入圆的半径:");
double radius = input.nextDouble();
double area = Math.PI * radius * radius;
System.out.println("圆的面积为:" + area);
}
}
```
如果输入的数据不是double型数据(如字符串“abc”),程序会抛出`InputMismatchException`异常,执行程序会停止并打印异常信息。
加入异常处理机制后,可以让程序在输入不正确的类型数据时给出错误提示并要求重新输入。以下是加入异常处理机制的程序代码:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class CircleArea {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double radius = 0;
boolean flag = false;
while(!flag) {
try {
System.out.print("请输入圆的半径:");
radius = input.nextDouble();
flag = true;
} catch(InputMismatchException e) {
System.out.println("输入错误,请重新输入!");
input.nextLine();
}
}
double area = Math.PI * radius * radius;
System.out.println("圆的面积为:" + area);
}
}
```
在上述代码中,我们使用了一个while循环来实现重新输入的功能,当输入错误时,程序会提示用户重新输入,并清空输入缓存。当输入正确时,将flag标记为true,跳出循环。
阅读全文