gpt4 book ai didi

java - 许可游戏Java循环崩溃

转载 作者:行者123 更新时间:2023-12-02 04:57:47 24 4
gpt4 key购买 nike

在加利福尼亚州,每个汽车牌照都包含 3 个字母。我们有一个游戏,目标是用字母组成单词。对于与车牌匹配的单词,它必须按以下顺序包含车牌中的所有字母它们发生的情况。 KDN=开玩笑。 YRW=眉毛。你明白了。

所以我为这个游戏编写了一个代码,它工作得很好,只是它在找到输入的所有单词后不会循环回到开头。我希望这样我就不必在每次运行程序时退出“运行窗口”并再次运行它。我试图找到错误,但似乎无法找到哪里出了问题。帮助非常感谢!另外,关于如何使这个程序更紧凑/更好有什么建议吗?

这是代码:

import acm.program.*;
import java.io.*;


public class LicensePlateGame extends ConsoleProgram {


public void run(){
println("This program is the blueprint for the license plate game!");
while(true){
String letter = readLine("Enter three letters: ");
String letters = letter.toLowerCase();
try {
BufferedReader rd = new BufferedReader(new FileReader("dictionary.txt"));
// Breaks the input string apart to 3 characters
char one = letters.charAt(0);
char two = letters.charAt(1);
char three = letters.charAt(2);

while(letters.length() <= 3){
String line = rd.readLine();
// Finds the words that follow the game rules
if(line.indexOf(one) != -1 && line.indexOf(two) > line.indexOf(one) && line.indexOf(three) > line.indexOf(two)){
println(line);
}
}
println("Enter legit input");
}
catch (IOException x){
println("Error occured");
}
}
}
}

最佳答案

这很糟糕:

while(letters.length() <= 3){
String line = rd.readLine();
// Finds the words that follow the game rules
if(line.indexOf(one) != -1 && line.indexOf(two) > line.indexOf(one) && line.indexOf(three) > line.indexOf(two)){
println(line);
}
}

循环体中终止条件的任何组成部分均未更改的 while 语句会带来灾难:这是一个无限循环。

什么情况?是什么?当字典中的所有单词都处理完毕后停止!

String line;
while( (line = rd.readLine()) != null ){
if( line.length() >= 3 ){
if( line.indexOf... ){
System.out.println( line );
}
}
}
rd.close();

关于java - 许可游戏Java循环崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28599437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com