我似乎遇到了这段代码的问题。目的是找出在5面骰子上滚动1所需的平均尝试次数。我想我的数学合适;我只是无法获得读取文本文件的while
循环。
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.util.Random;
import java.util.Scanner;
public class BottleCapPrize
{
public static void main (String[] args) throws IOException
{
Random randy = new Random();
PrintWriter outFile = new PrintWriter(new File("boost.txt"));
Scanner inFile = new Scanner(new File("boost.txt"));
Scanner in = new Scanner(System.in);
int trials;
int tries = 6;
int winCap = 6;
int token = 0;
double average;
int total = 0;
System.out.print("Please enter the number of trials: ");
trials = in.nextInt();
for (int loop = 1; loop <= trials; loop++)
{
winCap = 6;
tries = 0;
while (winCap != 0)
{
tries++;
winCap = randy.nextInt(5);
}
outFile.println(tries);
System.out.println(tries);
}
while (inFile.hasNext())
{
token = inFile.nextInt();
total = total + token;
}
average = (double)total/(double)trials;
System.out.println("Average : " + average);
outFile.close();
inFile.close();
in.close();
}
}
答案 0 :(得分:0)
我认为你的意思是
while (inFile.hasNextLine())
或
while (inFile.hasNextInt())
希望有所帮助!
答案 1 :(得分:0)
您不要关闭输出文件。由于输出文件也是输入文件,除非先关闭输出,否则无法读取输入。
在while (inFile.hasNext())
之前移动outFile.close(),在关闭outFile之前不要打开你的inFile:
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.util.Random;
import java.util.Scanner;
public class BottleCapPrize
{
public static void main (String[] args) throws IOException
{
Random randy = new Random();
PrintWriter outFile = new PrintWriter(new File("boost.txt"));
Scanner in = new Scanner(System.in);
int trials;
int tries = 6;
int winCap = 6;
int token = 0;
double average;
int total = 0;
System.out.print("Please enter the number of trials: ");
trials = in.nextInt();
for (int loop = 1; loop <= trials; loop++)
{
winCap = 6;
tries = 0;
while (winCap != 0)
{
tries++;
winCap = randy.nextInt(5);
}
outFile.println(tries);
System.out.println(tries);
}
outFile.close();
Scanner inFile = new Scanner(new File("boost.txt"));
while (inFile.hasNext())
{
token = inFile.nextInt();
total = total + token;
}
average = (double)total/(double)trials;
System.out.println("Average : " + average);
inFile.close();
in.close();
}
}