用Java编写程序,提示用户输人长度(以尺为单位)并输出等价长度(以米为单位)。如果用户输入一个负数或非数字字符,则抛出并处理相应异常,并提示用户输人另一组数组。
时间: 2023-06-14 12:04:58 浏览: 73
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) {
System.out.print("请输入长度(以尺为单位):");
try {
double feet = scanner.nextDouble();
if (feet < 0) {
throw new IllegalArgumentException("长度不能为负数!");
}
double meters = feet * 0.3048;
System.out.println(feet + "尺 = " + meters + "米");
break;
} catch (InputMismatchException e) {
System.out.println("输入不是数字,请重新输入!");
scanner.nextLine(); // 清除输入缓冲区
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
scanner.close();
}
}
```
在上面的代码中,我们首先创建一个Scanner对象来获取用户的输入。然后,我们使用一个无限循环来不断提示用户输入长度,直到用户输入正确的数字为止。在try语句块中,我们首先获取用户输入的长度,并判断其是否为负数。如果是负数,我们抛出一个IllegalArgumentException异常,并输出相应的错误消息。如果输入的是非数字字符,会抛出InputMismatchException异常,并且我们需要清除输入缓冲区。最后,如果一切正常,我们将输入的长度转换为米,并输出等价长度。最后,我们关闭Scanner对象,以释放相关资源。
阅读全文