设有一个整数数组a[], a有10个元素,其值依次为0到9。 从键盘输入整数i的值,求a[i]的倒数。 注意处理各种异常。发生异常后,根据不同的异常,输出警告。java
时间: 2023-12-10 10:38:34 浏览: 71
下面是一个可能的实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入数组下标:");
int i = scanner.nextInt();
if (i < 0 || i >= a.length) {
throw new ArrayIndexOutOfBoundsException("下标越界");
}
if (a[i] == 0) {
throw new ArithmeticException("除数为0");
}
double reciprocal = 1.0 / a[i];
System.out.println("a[" + i + "]的倒数是:" + reciprocal);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("警告:数组下标越界");
} catch (ArithmeticException e) {
System.out.println("警告:除数为0");
} catch (Exception e) {
System.out.println("警告:输入格式错误");
}
}
}
```
程序首先定义了一个整型数组a,长度为10,元素依次为0到9。然后通过Scanner从键盘读入一个整数i,表示要访问a的第i个元素的倒数。
程序使用try-catch块来捕获可能发生的异常。如果i越界,即i小于0或大于等于数组长度,就抛出ArrayIndexOutOfBoundsException异常,程序会输出警告信息“警告:数组下标越界”。如果a[i]等于0,就抛出ArithmeticException异常,程序会输出警告信息“警告:除数为0”。如果输入的不是整数,就抛出Exception异常,程序会输出警告信息“警告:输入格式错误”。
如果没有发生异常,程序就计算a[i]的倒数,然后输出结果。注意,在计算倒数之前,要判断a[i]是否为0,因为除以0是不合法的。