我有一个代码
boolean playerTakesAHit() throws IOException {
char ch = ' '; boolean hit=false;
do{
System.out.print("Hit or Stay: ");
System.out.flush();
String playersDecision = keyboardInput.readLine();
try {ch = playersDecision.charAt(0);
} catch (StringIndexOutOfBoundsException exception) {
if(ch == 'H' || ch == 'h') {
return true;
}
if(ch == 'S' || ch == 's') {
return false;
}}
} while(true);
我想要的是这个方法会在用户点击H / h(返回true)时重复,并在用户点击S / s时立即停止。但是当我使用:
调用此方法时 ...
while(playerTakesAHit()) {
System.out.println("Player Hit");
}
...
我有这样的事情:
命中或留下:h
命中或留下:h
命中或留下:s
命中或留下:S
点击或停留:
重复询问Hit或Stay来自用户的输入。 谁知道我的错误在哪里?
答案 0 :(得分:0)
试试这个:
char ch = ' ';
boolean hit=false;
do{
System.out.print("Hit or Stay: ");
System.out.flush();
String playersDecision = keyboardInput.readLine();
try {
ch = playersDecision.charAt(0);
} catch (StringIndexOutOfBoundsException exception) {
ch = ' '; //blank out
}
if(ch == 'H' || ch == 'h') {
hit = true;
}
} while(!(ch == 'S' || ch == 's'));
return hit;