Перенос условий за пределы цикла
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 выкинуть.