私はユーザーがトップナンバーを入力し、コンピューターが1からユーザーが入力した番号までの数字を選択する推測ゲームを作っています。正しい数字が推測された後は、それがdoStringの中にある間にdoを残してtoStringに移動することになっていますが、そうではありません。ここでプログラムがループを終了していないと思ってもそれがわかっている
は一例です:
Guessing Game - How many numbers? 10
Enter a number between 1 and 10: 1
Try again.
Enter a number between 1 and 10: 2
Try again.
Enter a number between 1 and 10: 3
Try again.
Enter a number between 1 and 10: 4
Enter a number between 1 and 10:
あなたはそれが「もう一度試してみてください」と言うが、まだ別の推測を求めていないことがわかります。
は、ここに私のプログラム
import java.util.Scanner;
import static java.lang.System.*;
public class GuessingGame
{
public int upperBound;
int guesscount = 0;
public GuessingGame(int stop)
{
upperBound = stop;
}
public int playGame()
{
boolean guesscorrectly = false;
Scanner kb = new Scanner(System.in);
int correctNum = (int) ((Math.random()*upperBound) +1);
do{
System.out.print("Enter a number between 1 and " + upperBound + ": ");
int guess = kb.nextInt();
if(guess==correctNum){
guesscount++;
guesscorrectly = true;
}
else{
guesscount++;
System.out.println("Try again.\n");
}
}while(guesscorrectly!=true);
return correctNum;
}
public String toString()
{
return "You correctly guessed " + playGame() + "! It took you " + guesscount + " guesses.";
}
}
され、その後、ここでの主な
import java.util.Scanner;
import static java.lang.System.*;
public class GuessRunner
{
public static void main(String args[])
{
Scanner kb = new Scanner(System.in);
System.out.print("Guessing Game - How many numbers? ");
int upperBound = kb.nextInt();
GuessingGame test = new GuessingGame(upperBound);
test.playGame();
System.out.println(test);
}
}
あなたのtoStringメソッドはどこから呼び出されますか? – user2677821
@ user2677821「System.out.println(テスト)」に暗黙のうちに呼び出されています – azurefrog
@ user2677821「System.out.println(テスト)」と言ったときに – Grant