Start, взглянув на Control Flow Statements, в частности, разделы for-loop
, while-loop
и do-while-loop
В принципе, вам нужно какое-то цикл, который будет продолжать повторять до некоторого условия выхода Достойно (что значения в пределах ваш указанный диапазон)
что-то вроде ...
do {
System.out.print("Please choose a number between 1 and " + max + ":");
guess = scan.nextInt();
} while (guess < 1 || guess > 15);
что будет в основном продолжать запрашивать у пользователя, пока они не войдут иметь значение от 1 до 15 включительно.
Как работоспособный пример ...
import java.util.Random;
import java.util.Scanner;
public class GuessMe {
public static void main(String[] args) {
int max = 15;
int guess = 0;
Random generator = new Random();
int answer = generator.nextInt(max) + 1;
Scanner scan = new Scanner(System.in);
System.out.println("I'm thinking of a number between 1 and " + max + ". Guess what is it\n");
do {
do {
System.out.print("Please choose a number between 1 and " + max + ":");
guess = scan.nextInt();
} while (guess < 1 || guess > 15);
if (guess < answer) {
System.out.println("Good guess, but mine is higher");
} else if (guess > answer) {
System.out.println("Good guess, but mine is low");
}
} while (guess != answer);
System.out.println("Good guess, that's right!");
}
}
Обновлено
Строго говоря, вам не нужен внутренний цикл (в данном случае), но это не показано, как вы могли бы быть возможность повторного запроса пользователя для одного заданного значения.
Другим подходом может быть использование блока if-else
вместо того, чтобы напрямую проверять результат ввода.
import java.util.Random;
import java.util.Scanner;
public class GuessMe {
public static void main(String[] args) {
int max = 15;
int guess = 0;
Random generator = new Random();
int answer = generator.nextInt(max) + 1;
Scanner scan = new Scanner(System.in);
System.out.println("I'm thinking of a number between 1 and " + max + ". Guess what is it\n");
do {
System.out.print("Please choose a number between 1 and " + max + ":");
guess = scan.nextInt();
if (guess < 1 || guess > 15) {
System.out.println("You did't enter a valid number, please try again");
} else if (guess < answer) {
System.out.println("Good guess, but mine is higher");
} else if (guess > answer) {
System.out.println("Good guess, but mine is low");
}
} while (guess != answer);
System.out.println("Good guess, that's right!");
}
}
Посмотрите на [Контрольные потоки] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html), в частности разделы 'for-loop',' while- loop' и 'do-while-loop' – MadProgrammer