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语句。它如何只允许执行相应的行?
这也是我在这里的第一篇文章,如果我做错了什么或违反规则,请告诉我。
谢谢。答案 0 :(得分:1)
Game
此代码将继续从标准输入读取字符,直到它读取换行符。这是为了丢弃所有其他角色,直到游戏再次提示用户输入角色。
您可能是第一次输入do {
ignore = (char) System.in.read();
} while (ignore != '\n');
。没有该代码,如果您的答案有误,游戏会提示您输入另一封信,但之后会显示您第一次输入的abc
。