Перенос условий за пределы цикла

import java.util.*;

public class GuessNumber {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Random r = new Random();
        int hiddenNum;
        int guess;
        int maxNumber = 100;

        hiddenNum = r.nextInt(maxNumber + 1);

        while(true) {           
            System.out.println("Введите число, а потом ждите ответа от программы!");
            guess = scan.nextInt();

            if(guess == hiddenNum) {
                System.out.println("Вы угадали!");
                break;
            } else {
                System.out.println("Ваше число меньше или больше правильного");
                continue;
            }
        }   
    }
}

Я пытаюсь сделать проверку чисел на равенство вместо "true" в цикле while. Также нужно сделать if вне цикла while, который будет сообщать о том, что число угадано.(Программа должна загадывать число, которое игрок должен угадать. Если число игрока не совпадает с числом программы, то программа будет работать, пока игрок его не угадает. Если игрок угадает, то выводится сообщение и игра заканчивается.)


Ответы (2 шт):

Автор решения: Дмитрий

Как-то так :

import java.util.*;

public class GuessNumber {

    private final static int MAX_NUMBER = 100;

    public static void main(String[] args) {
        final Scanner scan = new Scanner(System.in);
        final int hiddenNum = new Random().nextInt(MAX_NUMBER+1);
        do {
            System.out.println("Введите число, а потом ждите ответа от программы!");
        } while (check(hiddenNum, scan.nextInt()));
    }

    private static boolean check (int hiddenNum, int guess){
        System.out.println(guess==hiddenNum ? "Вы угадали!" : "Ваше число меньше или больше правильного");
        return guess!=hiddenNum;
    }

}
→ Ссылка
Автор решения: Qwertiy

Немного нестандартный вариант: https://ideone.com/YAyZcW

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    Random r = new Random();
    int maxNumber = 100;
    int hiddenNum = 16 /* r.nextInt(maxNumber + 1) */;
    int guess = hiddenNum ^ 1;

    for (
      String msg = "Введите число, а потом ждите ответа от программы!";
      guess != hiddenNum;
      msg = "Ваше число меньше или больше правильного"
    ) {
      System.out.println(msg);
      guess = scan.nextInt();
    }

    System.out.println("Вы угадали!");
  }
}

PS: А вообще, код из вопроса мне больше нравится, только надо из него else и continue выкинуть.

→ Ссылка