我試圖解決這個問題:不正確的總和計算的
編寫Java程序,讀取來自用戶的文件名。該文件預計包含最多20個整數。 聲明一個大小爲20的數組。讀取文件中的所有值並將它們存儲在數組中。請注意, 可以是文件中的任意數量的整數。最後,計算並顯示數組中存儲的所有整數的總和。 使用異常處理來檢測:從那裏一個非整數讀
使用無效數組索引的 無效的文件名的文件,他的文件不存在
- 不正確的輸入
我現在的問題是不正確的總和。這裏是我的代碼
package labtask.pkg10;
import java.io.File;
import java.io.*;
import java.util.*;
import java.util.ArrayList;
public class task2 {
public static void main(String[] args) {
int integers[] = new int[20];
Scanner read = new Scanner(System.in);
int sum = 0;
int num = 0;
String filename;
System.out.println("enter the file name ");
filename = read.next();
try {
File file = new File(filename);
Scanner inputFile = null;
inputFile = new Scanner(file);
int i = 0;
while (inputFile.hasNext()) {
num = Integer.parseInt(inputFile.next());
integers[i] = num;
}
for (int x = 0; x < 20; x++) {
sum += num;
}
System.out.println("sum are : " + sum);
} catch (FileNotFoundException e) {
System.out.println("file not found");
} catch (NumberFormatException e) {
System.out.println("please enter only integer number");
}
}
}
和我的文本文件:
2
2
2
2
2
2
2
2
2
12
23
2
2
2
2
2
2
2
2
2
我得到以下輸出:
輸入文件名
gg.txt
之和:40
BUILD SUCCESSFUL(總時間:2秒)
爲什麼總數沒有正確計算?
爲什麼你期望的總和是正確的?你的代碼明確地忽略了數組並且總結了'num'。 – Tom
提示:在這裏只有一個**和**唯一的答案:當你的代碼出乎意料地行爲時,不要求助於其他人(至少不是第一步)。相反:使用** trace **語句使其*更清晰*您的代碼正在做什麼。換句話說:如果你不明白你的代碼在做什麼,那麼就給你看。所以,跟蹤東西,或學習使用調試器。 – GhostCat