[英]Why is my Java program skipping a 'while' loop?
我目前遇到“ while”循環未執行的問題。 如果輸入文本文件具有下一行,則將循環條件設置為true。 但是,當我執行程序時,循環未運行。 我通過添加'System.out.println(text)'確認了這一點,並且我懷疑沒有文本產生。
什么問題導致循環無法執行?
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
{
Scanner in = new Scanner(System.in);
PrintWriter outFile = new PrintWriter(new File("guess.txt"));
Scanner inFile = new Scanner(new File("guess.txt"));
Random rand = new Random();
System.out.print("Enter number of trials: ");
int trials = in.nextInt();
int guess = 0;
int totalGuess = 0;
for (int trial = 0; trial < trials; ++trial)
{
guess = 0;
int winCap = rand.nextInt(5) + 1;
int guessCap = rand.nextInt(5) + 1;
++guess;
while (guessCap != winCap)
{
guessCap = rand.nextInt(5) + 1;
++guess;
}
outFile.println(guess);
}
while (inFile.hasNextLine())
{
String number = inFile.nextLine();
guess = Integer.parseInt(number);
totalGuess += guess;
System.out.println("This should print if while loop conditions set to true.");
}
double average = (double)totalGuess / trials;
System.out.println(totalGuess + " " + guess);
System.out.println("On average, it took " + average + " bottles to win.");
System.out.println();
inFile.close();
outFile.close();
}
}
在使用outFile.println(guess)
之后,請確保通過執行outFile.flush()
將內容刷新到guess.txt
文件。
第一步是驗證您的外部循環, for循環是否也正在運行。 如果試驗恰好為0,則您的for循環將永遠不會運行,並且您也永遠不會到達while循環本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.