import java.util.*;
public class Guess {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
Random r = new Random();
intro();
int numGames = 0;
int numGuesses = game(console, r);
int max = max(numGuesses);
String again = "y";
do {
game(console, r);
System.out.println("Do you want to play again?");
again = console.next();
System.out.println();
numGames++;
} while (again.startsWith("y") || again.startsWith("Y"));
stats(numGames, numGuesses, max);
}
public static void intro() {...}
public static int game(Scanner console, Random r) {
System.out.println("I'm thinking of a number between 1 and 100...");
int answer = r.nextInt(100) + 1;
System.out.println("answer = " + answer);
int guess = -1;
int numGuesses = 0;
while (answer != guess) {
System.out.print("Your guess? ");
guess = console.nextInt();
numGuesses++;
if (guess > answer) {
System.out.println("It's lower.");
} else if (guess < answer) {
System.out.println("It's higher.");
} else {
System.out.println("You got it right in " + numGuesses + " guesses");
}
max(numGuesses);
}
return numGuesses;
}
public static int max(int numGuesses) {
int max = numGuesses;
if (max > numGuesses) {
max = numGuesses;
}
return max;
}
public static void stats(int numGames, int numGuesses, int max) {
System.out.println("Overall results:");
System.out.println(" total games = " + numGames);
System.out.println(" total guesses = " + numGuesses);
System.out.println(" guesses/game = " + numGuesses/numGames/1.0);
System.out.println(" best game = " + max);
}
}
因此,这是我的程序,我有问题的一小部分是,我的用于numGuesses初始INT(int numGuesses = game(console, r);
)正在执行如下所示的游戏方法。 所有我想要的游戏方法是numGuesses的返回值,以便我可以将该值转发到名为stats(numGames,numGuesses,max)的另一种方法; 。我怎样才能使初始值不执行方法,只有do/while循环是? 我产生return语句的方式是否错误?另外,我的返回值并没有保存在我的统计方法中,所以当我运行它时,我得到了错误的答案。
你的方法'max'完全搞砸了......真的。 – 1Darco1 2015-02-10 08:37:44
我没有得到你的统计方法中的行 System.out.println(“guesses/game =”+ numGuesses/numGames/1.0); – 2015-02-10 10:04:33