当我输入特定单词时,如何退出程序,在我的情况下“结束”?

时间:2017-07-07 13:07:53

标签: java chatbot

我遇到了问题。我正在为ChatBot做一个学校项目。这是聊天机器人的游戏部分。这是一个单词争夺战游戏。我可以输入错误的答案,程序会提示我重新输入答案。但是,如果我输入正确的答案,程序就会停在那里,程序没有停止。

我想要做的是重复代码,比如继续玩游戏,直到我输入单词“end”,但我不知道如何实现它。此外,大多数单词不断重复。例如,[animal]这个词通常会被加入[anialm]。

所以我想在改进代码方面得到一些帮助。非常感谢你!!我还是刚开始学习编程的一年级。

{
  "name": "John Doe",
  "email": "john.doe@company.com",
  "active": null
}

4 个答案:

答案 0 :(得分:1)

我认为首先要做的是重新构建代码,这样可以更容易调试。

我想说你的代码基本上要求分成两个部分:一个用于运行游戏,一个用于包含数据:

public class Anagram {

    private String original= null;
    private String scrambled = null;

    public Anagram(String originalWord) {
        this.original = originalWord;
        this.scrambled = scramble(originalWord);
    }

    private String scramble(String original) {
        //scramble logic here
        return null;//your scrambled String
    }

    public boolean guess(String guess) {
        return original.equals(guess);
    }

}

然后我们将不用担心,我们的运行循环基本上变成了:

Anagram anagram = new Anagram(wordToGuess);

String input = null;
while (true) {
    System.out.print(">>> ");
    input = userinput.nextLine();
    if (input.equalsIgnoreCase("end")) {
        System.out.println("Unlucky, please come back again");
        System.exit(0); 
    }

    if (anagram.guess(input)) {
        System.out.println(">>> Great Job getting the answer!");
        System.exit(0); 
    }
    else {
        System.out.print(">>> ");
        System.out.println("Incorrrect, please try again!");
    }
}

这使用while(true),可以很容易地用其他类型的循环替换。

此外,通过将设置代码提取到另一种方法,您可能会受益。

答案 1 :(得分:0)

使用break;语句结束循环。

if(guess.equalsIgnoreCase("end")){
     break;
  }

答案 2 :(得分:-1)

我建议你定义boolean,它代表游戏的状态(它是否还在运行);然后,您可以将所需的操作放在while循环中,并将boolean作为条件。

while(isRunning) {
    //actions repeated in here
}

游戏结束后,只需更改boolean的州。

答案 3 :(得分:-1)

if(guess.equalsIgnoreCase("end")){
      System.exit(0);
  }