自从我创建了一个接受用户输入的方法以来,就一直是这样。以前,扫描仪处于循环中,但它导致了另一个小问题。我以前从未遇到过这个问题。。
public static int input(){
Scanner scan = new Scanner (System.in);
int guess;
guess = scan.nextInt();
return(guess);
}
public static void main(String[] args) {
do{
if (firstPromptIsPrinted){
System.out.println("Enter a number between 1 and 20.");
}
guess = input();
if (secondPromptIsPrinted){
System.out.println("Nope ;). ");
}
if (secondPromptIsPrinted){
giveHint(guess, luckyNumber);
}
firstPromptIsPrinted = false; //Now
secondPromptIsPrinted = true;
} while (guess != luckyNumber);
我对它进行了一点重新组织,以摆脱静态输入法。。。这是有效的:我认为一个变化是System.out.println("否…")周围的if条件;。。。
public class GuessGame {
Scanner scan = null;
public GuessGame() {
scan = new Scanner ( System.in );
}
public int input() {
int ltheResult;
ltheResult = scan.nextInt ();
return ltheResult;
}
public static void main(String[] args) {
GuessGame ltheClass = new GuessGame ();
ltheClass.run ();
}
public void run () {
int guess = 0;
boolean firstPromptIsPrinted = true;
boolean secondPromptIsPrinted = false;
int luckyNumber = 10;
do {
if ( firstPromptIsPrinted ) {
System.out.println ( "Enter a number between 1 and 20." );
}
guess = this.input ();
if ( guess != luckyNumber ) {
System.out.println ( "Nope ;). " );
}
// if (secondPromptIsPrinted){
// giveHint(guess, luckyNumber);
// }
firstPromptIsPrinted = false; // Now
secondPromptIsPrinted = true;
}
while ( guess != luckyNumber );
System.out.println ( "Yes luckyNumber is [" + luckyNumber + "]" );
}
}