用Java写编写一个程序进行一个数组元素值的录入,能够控制录入数组元素的个数,对录入数组元素统计其正数,负数和零的个数。自定义一个异常类ArraysElementException,当输入的值不是整数时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法, //该方法返回“**不是整数“的字符串(hasNextInt():判断输入是否为整数,若是返回True,不是返回fasle
时间: 2024-02-27 12:55:02 浏览: 56
好的,以下是 Java 版的实现,可以参考一下:
```java
import java.util.Scanner;
class ArraysElementException extends Exception {
public String toString() {
return "**不是整数";
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入数组元素个数:");
int n = input.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
while (true) {
try {
System.out.printf("请输入第%d个元素:", i + 1);
String x = input.next();
if (x.isEmpty()) {
throw new ArraysElementException();
}
arr[i] = Integer.parseInt(x);
break;
}
catch (NumberFormatException e) {
System.out.println(new ArraysElementException());
}
}
}
int posCount = 0, negCount = 0, zeroCount = 0;
for (int x : arr) {
if (x > 0) {
posCount++;
}
else if (x < 0) {
negCount++;
}
else {
zeroCount++;
}
}
System.out.printf("正数个数:%d\n", posCount);
System.out.printf("负数个数:%d\n", negCount);
System.out.printf("零的个数:%d\n", zeroCount);
}
}
```
程序首先创建一个 Scanner 对象,然后读入数组元素个数,并创建一个数组。接着,程序使用 while 循环读入每个元素,如果输入不是整数,就抛出 ArraysElementException 异常,然后再次循环读入。读入完所有元素后,程序统计正数、负数和零的个数,并输出结果。
阅读全文