我有一个小型的家庭作业应用程序,它将从5到77的随机数写入文本文件,然后是一个单独的应用程序,它读取文件并总计数字。
这是我将数字写入文本文件的代码......
Random r = new Random();
int min = 5;
int max = 77;
int[]randomNumbers = new int[1000];
try
{
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("myTextFile.txt")), true);
for(int i = 0; i < randomNumbers.length; i++)
{
randomNumbers[i] = r.nextInt(max - min + 1) + min;
pw.println(randomNumbers[i]);
}
}
catch(IOException io){}
以下是我阅读文件和总金额的代码......
int totalAmount = 0;
public void run()
{
try
{
BufferedReader buffy = new BufferedReader(new FileReader("myTextFile.txt"));
String s;
while((s = buffy.readLine()) != null)
{
int number = Integer.parseInt(s);
totalAmount += number;
System.out.println(totalNumbers);
}
}
catch(IOException io){}
}
然而,输出以 29633 开头,并一直显示数字 42328
为什么我得到这个结果......只是试图理解我的代码的错误部分
答案 0 :(得分:1)
您正在打印totalNumbers
而不是将您的值累积到的变量(totalAmount
),这是一个未初始化的变量。其内容未定义且不可预测。
System.out.println(totalNumbers);
// Should be
System.out.println(totalAmount);
答案 1 :(得分:1)
您是否需要打印文件中的每个数字,或者只打印出总数?
如果您需要打印每个号码,总计应用中的while
循环应如下所示......
while((s = buffy.readLine()) != null) {
int number = Integer.parseInt(s);
totalAmount += number;
System.out.println(number); // changed the variable here
}
但是,如果您只需要打印出最终结果,则需要将System.out.println()
行移到while
循环之外(并仍然将变量更改为 totalAmount ...
while((s = buffy.readLine()) != null) {
int number = Integer.parseInt(s);
totalAmount += number;
}
System.out.println(totalAmount); // changed the variable here, and moved it outside the loop