Я огляделся и не могу найти ответ о том, в чем проблема. Он выполняет штраф до цикла, а затем, кажется, игнорирует цикл и получает зависание, поэтому я довольно смущен.Подумайте, что не так с моим кодом; он зацикливается на while, если цикл
package classGame;
import java.util.*;
public class GameTwo {
static int randomNumber;
static int numOfGuess = 5;
static Scanner GameTwo = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Frank: Hello there! My name is Frank. This is the introduction to the game.");
System.out.print("Frank: Please tell me what you would like to be called: ");
if(GameTwo.hasNextLine()) {
String userName =GameTwo.nextLine();
System.out.println(userName + ": My name is: " + userName);
System.out.println("Frank: Well " + userName + ", it's nice to meet you. ");
System.out.println("Frank: Lets play a little game, I want you to guess a number, It's already" +
" in my head and it's between 1-10.");
int guessResult = 1;
int randomGuess = 0;
while(guessResult != -1) {
randomGuess = GameTwo.nextInt();
guessResult = checkGuess(randomGuess);
}
while (randomGuess != guessResult) {
System.out.println(userName + ":Is the number: ");
randomGuess = GameTwo.nextInt();
if(randomGuess < 1 || randomGuess > 10 || randomGuess > guessResult || randomGuess < guessResult) {
System.out.println("Frank: Thats not right "+ userName);
} else if (randomGuess == guessResult) {
System.out.println("Frank: Hey...Thats pretty good...You got it!");
}
}
}
}
public static int getRandomNum() {
randomNumber = (int) (Math.random()*10);
return randomNumber;
}
public static int checkGuess(int guess) {
if(guess == randomNumber) {
return -1;
} else {
return guess;
}
}
}
вот что он печатает до петли
Frank: Привет! Меня зовут Фрэнк. Это введение в игру.
Frank: Скажите, пожалуйста, что вы хотели бы назвать: T
T: Меня зовут: T
Frank: Ну T, приятно встретиться с вами.
Фрэнк: Давайте сыграем в маленькую игру, я хочу, чтобы вы угадали число, Это уже в моей голове, и это между 1-10.
Если вы не меняете тестовую переменную, здесь 'win', * внутри * самого цикла while, как эта переменная изменится? Как же тогда цикл while выйдет? –
Прочтите раздел [while loop tutorial] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html) в разделе Основные учебные пособия по Java. –
Подождите; nevermind Я понял, что был глупым, и я могу использовать свои исходные переменные, поэтому я изменил его на randomGuess! = guessResult и оставил последнюю часть как randomGuess == guessResult, но моя первоначальная проблема не устранена, программа не регистрирует цикл вообще. Я полностью удалил переменную win. –