Java за неделю. Вводный курс. Валерий Станиславович Яценков
Чтение книги онлайн.
Читать онлайн книгу Java за неделю. Вводный курс - Валерий Станиславович Яценков страница 16
Сгенерируйте псевдослучайное число secret в диапазоне от 1 до 10 при помощи метода nextInt () объекта rnd:
int secret = 1 + rnd.nextInt (10);
Окончательный фрагмент кода для генерации псевдослучайного целого числа выглядит так:
Random rnd = new Random(System.currentTimeMillis ());
int secret = 1 + rnd.nextInt (10);
Теперь у вас есть «секретное» случайное число, на которое ссылается переменная secret. Осталось реализовать сравнение секретного значения со значением, которое ввел пользователь. Запрос на ввод значения должен повторяться до тех пор, пока пользователь не угадает.
Разработайте программу самостоятельно, а затем сравните результат с листингом 4.4. Ваш код не обязательно должен совпасть с примером – главное, чтобы он правильно работал.
Листинг 4.4 Пример прерывания цикла
import javax.swing.JOptionPane;
import java. util. Random;
public class Listing4_4 {
public static void main (String [] args) {
Random rnd = new Random(System.currentTimeMillis ());
int secret = 1 + rnd.nextInt (10);
int userData;
String userInput;
while (true) {
// Выводим окно запроса
userInput = JOptionPane.showInputDialog («Угадайте число от 1 до 10»);
// Преобразуем строку в число в явном виде
userData = Integer.parseInt (userInput);
if (userData == secret) {
JOptionPane.showMessageDialog (null, «Вы угадали число!»);
break;
}
}
}
}
Поскольку заранее не известно сколько раз придется задать вопрос, мы сознательно запускаем «вечный» цикл while со служебным значением true вместо условия. В каждом проходе цикла мы сравниваем введенное пользователем число со значением, загаданным в программе. В случае совпадения выводим сообщение и принудительно прерываем цикл. Количество попыток не может быть больше десяти, поэтому другие способы выхода из программы не предусмотрены.
Самостоятельно доработайте программу:
– Добавьте в тело цикла счетчик попыток. Пусть значение счетчика выводится в окне, сообщающем о совпадении: «Вы угадали число! Количество попыток:». Используйте конкатенацию строк, а также служебную последовательность "\n» для переноса строки текста.
– Добавьте прекращение угадывания и выход из программы при вводе числа 99.
4.4.2 Оператор досрочного выхода continue
Оператор continue прерывает выполнение тела цикла и вызывает досрочный переход к следующей итерации цикла, например:
for (int i=1; i <=10; i++) {
if (i== (i/2) *2) {
continue;
}
System.out.println («i=" + i);
}
Условие i== (i/2) *2 выполняется только в том случае, если значение i – четное, потому что тип переменной i объявлен как int. При делении нечетного числа на 2 дробная часть будет отброшена, и после умножения на 2 исходное значение не вернется.