【发布时间】:2018-04-10 02:48:51
【问题描述】:
我目前正在尝试完成一项需要使用 Java 编程的大学任务。任务如下。
我必须对“钓鱼比赛”的输入文件进行排序。该文件首先为每一行给出一个整数(1-7 之间),然后是一个实数。棘手的部分是这些数字尚未加起来或按顺序加起来。这意味着我必须让程序读取整数,证明它需要的位置,然后将以下权重添加到该位置。
以下是文件外观的概念
3 36.2
6 27.8
7 10.3
我对如何完成整个任务有一个大致的想法,但我被困在一个部分,即打印每个参赛者的总重量。
这是我到目前为止编写的代码。如果您能告诉我可能给我带来的问题,将不胜感激。 (它没有给出错误代码,而是我正在使用的软件BlueJ,只是不断尝试运行程序)
import java.io.*;
import java.util.Scanner;
public class Project7
{
public static void main(String[] args)
throws FileNotFoundException
{
Scanner inF = new Scanner(new File("inputpro7.txt"));
int [] arrayNum = new int[7];
double [] arrayWeight = new double[7];
int place = inF.nextInt();
double weight = inF.nextDouble();
for (int m = 0; m < 7; m++)
{
arrayNum[m] = m + 1;
}
while (inF.hasNextLine())
{
if (place == 1)
arrayWeight[0] += weight;
else if (place == 2)
arrayWeight[1] += weight;
else if (place == 3)
arrayWeight[2] += weight;
else if (place == 4)
arrayWeight[3] += weight;
else if (place == 5)
arrayWeight[4] += weight;
else if (place == 6)
arrayWeight[5] += weight;
else
arrayWeight[6] += weight;
}
for (int k = 0; k < 7; k++)
System.out.printf("%6d %6.2f%n", arrayNum[k],
arrayWeight[k]);
inF.close();
}
}
【问题讨论】:
-
为什么while循环应该结束?您没有从 Scanner within 循环中获得任何行。所以循环条件永远不会变成假。您需要在 while 循环 within 中从 Scanner 读取,以便条件(下一行退出)变为 false,因为您已经遍历了文件。
-
您遇到此问题表明您还不知道如何“在脑海中或在纸上遍历代码”,如果您需要经常学习和练习此技能'要进步。
-
@HovercraftFullOfEels 感谢您的意见。考虑到这一点,我将编写代码。我这学期刚开始学习java,所以我不自称是任何专家。我猜我们都必须从某个地方开始?