编写java程序,提示用户输入长度(以尺为单位)并输出等价长度(以米为单位)。如果用户输人一个负数或非数字字符,则抛出并处理相应异常,并提示用户输入另一组数组。
时间: 2023-06-26 22:05:59 浏览: 76
Java如何获取数组和字符串的长度(length还是length())
5星 · 资源好评率100%
可以使用Java中的Scanner类来实现用户输入,并使用try-catch语句处理异常。下面是一个示例程序:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class LengthConverter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
try {
System.out.print("请输入长度(以尺为单位): ");
double feet = scanner.nextDouble();
if (feet < 0) {
throw new IllegalArgumentException("长度不能为负数");
}
double meters = feet * 0.3048;
System.out.printf("%.2f尺等于%.2f米\n", feet, meters);
break;
} catch (InputMismatchException e) {
System.out.println("输入非数字字符,请重新输入");
scanner.next(); // 清空输入缓冲区
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
scanner.close();
}
}
```
在程序中,我们使用了一个while循环来反复提示用户输入长度,并在try块中进行输入转换和计算。如果用户输入的是非数字字符,则会抛出InputMismatchException异常,我们在catch块中捕获该异常并提示用户重新输入。如果用户输入的是负数,则会抛出IllegalArgumentException异常,我们也在catch块中捕获该异常并提示用户重新输入。如果用户输入正确,则会输出等价长度,并通过break语句退出循环。最后,我们调用Scanner类的close()方法关闭输入流。
阅读全文