我在寫一個程序,它將用戶的整數存儲在一個數組中,然後計算出數組的平均值。如何使用Ctrl + Z停止要求輸入?
數組最多可以容納100個整數。如果用戶想要做小於100時,他們打CTRL +ž(或命令 + 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);
我在做什麼錯?
我不斷收到一個NoSuchElementException
擊中CTRL +ž後馬上。
我有點困惑,因爲我沒有看到任何處理按鍵的代碼。你忽略了嗎?或者在Java程序中有沒有一些默認的,標準化的CTRL + Z行爲? – domsson
@domsson不,顯然不是。 CTRL + Z關閉輸入流,由操作系統處理,而不是Java。 – Tom
一個新手的好問題!但爲了記錄:理想情況下,您給我們[mcve] ...代碼,可以由我們編譯/運行,無需額外的努力。從這個意義上說,你的意見可以改進 - 包含完整的課程,而不需要介入。所以我只是去複製/粘貼/運行。 – GhostCat