试图了解猜测游戏如何在Java中运行

时间:2016-01-06 01:36:37

标签: java

public class Guess {
    public static void main(String arg[]) throws java.io.IOException {

        char ch, ignore, answer = 'k';

        do {
            System.out.println("i'm thinking of a letter between a-z, can you guess it?");

            ch = (char) System.in.read();

            do { // <<question about this block, start**
                ignore = (char) System.in.read();
            } while (ignore != '\n'); // <<<end block in question here**

            if (ch == answer)
                System.out.println("***WINNER***");
            else {
                System.out.print("...sorry ");
                if (ch > answer)
                    System.out.println("toooo lowwww ");
                else {
                    System.out.println("tooooo highhh ");
                }
            }
        } while (answer != ch);

    }
}

这条线如何使程序正常执行?我知道它接受的任何值都不是“\ n”,但是如果我删除这整段代码,程序就会执行每一个if,else语句。它如何只允许执行相应的行?

这也是我在这里的第一篇文章,如果我做错了什么或违反规则,请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:1)

Game

此代码将继续从标准输入读取字符,直到它读取换行符。这是为了丢弃所有其他角色,直到游戏再次提示用户输入角色。

您可能是第一次输入do { ignore = (char) System.in.read(); } while (ignore != '\n'); 。没有该代码,如果您的答案有误,游戏会提示您输入另一封信,但之后会显示您第一次输入的abc