«Циклические операторы»
Циклы многократно выполняют один и тот же набор инструкций до тех пор, пока не будет удовлетворено условие завершения цикла. Как станет ясно в дальнейшем, операторы цикла в Java способны удовлетворить любые потребности в программировании.
Если в поставленной перед вами задачи необходимо выводить последовательность, или проверять последовательность то следует применить оператор while.
While повторяет вычисление до тех пор пока условие истинно!
Синтаксис:
While(условие){операторы}
Условие в этом операторе – является логическим выражением, значит принимает два значения (истинное и ложное)
Цикл – это многократно повторяющийся фрагмент программы, поэтому определенный фрагмент программы будет повторяться ПОКА условие истинно или же определенный фрагмент программы будет выполняться ДО ТЕХ ПОР, ПОКА условие не станет истинным. Иначе говоря, во втором случае условие будет выполняться известное количество раз.
Напишем код программы для увеличения числа до тех пор пока число не станет двухзначным.
Создаем проект While. Класс – Dispatcher.
Объявляем переменную х – целочисленный тип.
Создаем код программы, который будет прибавлять к нашему заданному х единицу при истинном условии…
В данном коде программы мы увидим весь процесс работы цикла. Созданный нами цикл программы повторяется пока х меньше 10, как только условие стает ложным работа программы прекращается.
Задача №3
(самостоятельно)
Напишите код программы, которая будет увеличивать число пока оно не станет трехзначным.
Задача №4
(самостоятельно)
Напишите код программы, который будет выводить таблицу умножения на 7 первых 10 натуральных чисел.
У вас должно получиться à
Рассмотрим теперь цикл, в котором условие будет выполняться до после выполнения блока кода программы.
Поставим перед собой задачу: прибавлять к заданному числу единицу ДО ТЕХ ПОР, ПОКА число не будет двухзначным.
Пишем код программы.
Помните!
Тело цикла while (или любого другого цикла в Java) может быть пустым. Это обусловлено тем, что синтаксис Java допускает применение пустого оператора, содержащего только знак точки с запятой. Рассмотрим в качестве примера следующую программу:
Нам нужно рассчитать среднее значение двух чисел.
Давайте попробуем объяснить, что же происходит в этой программе?
Значение переменной i увеличивается, а значение переменной j уменьшается на единицу. Затем эти два значения сравниваются. Если новое значение переменной i по-прежнему меньше нового значения переменной j, цикл повторяется. Если же значение переменной i равно значению переменной j или больше него, то цикл завершается. После выхода из цикла переменна i будет содержать среднее исходных значений переменных i и j . (Безусловно, такая процедура оказывается работоспособной
только в том случае, если в самом начале цикла значение переменной i меньше значения переменной j .)
только в том случае, если в самом начале цикла значение переменной i меньше значения переменной j .)
Задача №5
Напишите код программы, который будет выводить числа от 10 до 1, без использования тела цикла. Весь код программы должен сводиться к условию в цикле и вызову оператора System.out.println();
Важно!
Цикл do -while особенно удобен при выборе пункта меню, поскольку в этом случае обычно требуется, чтобы тело цикла меню выполнялось, по меньшей мере, один раз.
Давайте научимся вводить значения в консоль нашей программы.
Для этого нам нужно добавить одну строку кода, мы не будем ее подробно рассматривать… скажу только одно: «Мы импортируем пакет из java API, который позволит нам вводить значения с клавиатуры…». Смотрите, как это выглядит.
В строке №2 (под строкой где описан пакет нашего приложения) мы прописываем импорт классаà
1 package pkgwhile;
2 import java.io.IOException;
Благодаря этой строке мы можем присвоить любое значение нашей переменной, которое будем вводить с клавиатуры.
Теперь попробуйте написать программу для обратного отсчета начиная с числа, которое введете с клавиатуры.
Но! Тип возврата данного метода имеет char (символьный тип).
Char — символьный тип данных представляет собой один 16-битный Unicode символ. Он имеет минимальное значение ‘\ u0000’ (или 0), и максимальное значение ‘\ uffff’ (или 65535 включительно). Символы char можно задавать также при помощи соответствующих чисел. Например, символ ‘Ы’ соответствует числу 1067. Поэтому прежде познакомьтесь с таблицей Unicode.
Самый простой способ посмотреть Unicode это зайти в меню пускàслужебныеàтаблица символов. Но там вы увидите только код, а вот с принципом записи кода в java нужно будет почитать дополнительно.
Смотрим, как будет выглядеть код программы:
обратите внимание на строки 2 и 4.
Давайте напишем игру.
Наша программа будет выбирать числа из промежутка (1;10) и попросит угадать пользователя выбранное число…
Пишем код программы:
package pkgwhile;
import java.io.IOException;
import java.util.Scanner;
public class Dispatcher {
public static void main(String[] args) throws IOException {
int prog, user;
// Генерируем случайное целое число от 1 до 10
prog = (int)(Math.random() * 10) + 1;
System.out.println("Я загадала число от 1 до 10, отгадайте его.");
System.out.print("Вводите ваше число: ");
Scanner input = new Scanner(System.in);
// Проверяем, есть ли в потоке ввода целое число
if( input.hasNextInt() ) {
do {
// Читаем с потока ввода целое число
user = input.nextInt();
if(user == prog) {
System.out.println("Вы угадали!");
} else {
// Проверяем, входит ли число в отрезок [1;10]
if (user > 0 && user <= 10) {
System.out.print("Вы не угадали! ");
// Если число загаданное программой меньше...
if( prog < user ) {
System.out.println("Моё число меньше.");
} else {
System.out.println("Моё число больше.");
}
} else {
System.out.println("Ваше число вообще не из нужного отрезка!");
}
}
} while( user != prog );
} else {
System.out.println("Ошибка. Вы не ввели целое число!");
}
System.out.println("До свиданья!");
}
}
Внесите в программу следующие доработки:
1. Программа должна считать количество попыток, которое потребовалось пользователю, чтобы угадать число. И в конце сообщать, сколько было попыток.
2. Программа должна загадывать число не из отрезка [1;10], а целое число из отрезка от [−10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа).
3. Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот.
!!! обратите внимание!!! Здесь показан еще один метод для ввода чисел в консоль программы. Попробуйте самостоятельно разобраться…






Немає коментарів:
Дописати коментар