私は、ユーザーからの整数を受け取り、配列に格納してから、配列の平均を計算するプログラムを作成しています。Ctrl + Zを押して入力を要求する方法を教えてください。
アレイは最大100の整数を保持できます。ユーザーが100未満をしたい場合は、数字の入力を求める停止するCTRL +Z(またはコマンド + Dを)打ちます。
はここに私のメインのメソッドです:
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
int [] array = new int[100];
System.out.printf("Enter a stream of numbers: ");
readIntoArray(input, array);
for (int i = 0; i<=array.length;i++) {
array[i] = input.nextInt();
}
}
そして、ここで配列に読み込む方法です。
public static int readIntoArray(Scanner input, int[] nums) {
int count = 0; //number of elements entered into the array
while (count <= nums.length && input.hasNextInt()) {
nums[count]=input.nextInt();
count++;
}
return count;
}
平均的な方法です。
public static void printAboveAverage(int[] nums, int size) {
double average;
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum =+ nums[i];
}
average = sum/size;
System.out.print(average);
私は間違っていますか?
私はすぐにCTRL +Zを打った後NoSuchElementException
を得続けます。
キープレスを処理するコードが表示されないので、少し戸惑っています。あなたはそれを省略しましたか?または、JavaプログラムでCTRL + Zのデフォルトの標準化された動作がいくつかありますか? – domsson
@domssonいいえ、明らかにそうではありません。 CTRL + Zは入力ストリームを閉じ、それはJavaではなくOSによって処理されます。 – Tom
初心者のための素敵な質問!しかし、記録のために:理想的には、私たちは[mcve] ...コードを与えて、コンパイル/実行することができます。その意味で、完全なクラスを含むために、入力を改善することができます。だから私はコピー/貼り付け/実行するだけです。 – GhostCat