私のJavaクラスにかなり大きな割り当てをしています。私はプログラム全体を書きましたが、最後の問題が1つありました。ユーザが入力している整数であることを確認するために、配列へのユーザ入力をチェックする必要があります。 Z、2.0、@%& @#%* @%^など)、エラーが発生した場合は、ループバックして、入力がエラーメッセージで拒否され、それらが準拠するまで繰り返さなければなりません。アレイで整合性チェックを実行していますか?
私はtry/catchを使って解決策を試したことがあると聞いていますが、私はまたしばらくはループを考えましたが、やり方はまだ分かりません。任意のヒント?
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