Выполнение довольно большого задания для моего класса java. Я написал всю программу, но я столкнулся с одной последней проблемой, там должна быть проверка ввода пользователя в массив, чтобы убедиться, что это целое число, которое вводит пользователь, а не хлам (a, Z, 2.0, @% & @ #% * @%^и т. Д.), И если эта ошибка произойдет, ему необходимо выполнить обратный вызов, переполнив вход с сообщением об ошибке до тех пор, пока они не будут выполнены.Выполнение проверки целостности в массиве?
Я слышал об использовании try/catch, чтобы попробовать как решение, и я также подумал о том, может быть, цикл while, но все еще не уверен, как это сделать. Какие-нибудь советы?
import java.util.Scanner;
import java.util.Arrays;
public class Assignment6 {
public static int getMaxValue(int[] array) {
int maxValue = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > maxValue) {
maxValue = array[i];
}
}
return maxValue;
}
public static int getMinValue(int[] array) {
int minValue = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < minValue) {
minValue = array[i];
}
}
return minValue;
}
public static double average(int[] array) {
double sum = 0, average = 0;
for (int i = 0; i < array.length; i++) {
sum = sum + array[i];
average = sum/array.length;
}
return average;
}
public static double Median(int[] array) {
int Median = array.length/2;
if (array.length % 2 == 1) {
return array[Median];
} else {
return (array[Median - 1] + array[Median])/2.0;
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter size of array: ");
int[] array = new int[input.nextInt()];
for (int i = 0; i < array.length; i++) {
System.out.print("Enter value #" + (i + 1) + ": ");
array[i] = input.nextInt();
}
System.out.println("\nYour data is:");
for (int i : array)
System.out.print(i + "\n");
System.out.println();
System.out.println("Average is : " + average(array));
System.out.println("Smallest value is: " + getMinValue(array));
System.out.println("Largest value is: " + getMaxValue(array));
System.out.println("\nYour sorted data is: ");
Arrays.sort(array);
for (int i = 0; i < array.length; i++)
System.out.println(array[i]);
double Median = Assignment6.Median(array);
System.out.println("\nThe median is: " + Median);
int Range = Assignment6.getMaxValue(array) - Assignment6.getMinValue(array);
System.out.println("\nThe range is: " + Range);
double midRange = (Assignment6.getMaxValue(array) + Assignment6.getMinValue(array))/2.0;
System.out.println("\nThe Midrange is: " + midRange);
}
}
Вы уже используете 'nextInt', разве это не проверка? –
Поскольку вы используете 'nextInt()', это означает, что любой неверный ввод приведет к генерированию исключения. Вероятно, вы должны просто справиться с этим. – dlev