- •Вывод в Консоль
- •Управляющая последовательность (Escapesequence)
- •Встроенные типы данных. Приведение типов
- •Замечание о типеchar
- •Литерал
- •Лр3 Операции над примитивными типами. Библиотеки api. Импорт библиотек. Ввод исходных данных с клавиатуры Приоритеты операций в Java
- •Методы классов Java api (application programming interface): Math, System.Out, ….
- •Определение. Сигнатура метода.
- •Лр4. Управление потоком (if, else, while) Импорт jar-библиотеки ввода/вывода
- •Методы этих классов специфицированы в файле stdlib.Docx.
- •Конструкции контроля последовательности исполнения инструкций кода
- •1.Типовые конструкции с условным операторомif
- •2.Типовые конструкции с оператором циклаwhile
- •3.Типовые конструкции с оператором циклаfor
- •Лр5. Псевдокод. Множественный выбор. Другие конструкции циклов.
- •Псевдокод
- •Оператор switch делает код короче и понятнее
- •Другие конструкции циклов
- •Оператор break делает код более быстрым
- •Оператор continue делает код более быстрым
- •Пример использования метода чтения из файла
3.Типовые конструкции с оператором циклаfor
Спецификация for:
for (<initialize index>; <boolean expression>; <increment index>)
{
<statements> - тело цикла
}
Как работает for:
Выполнить инструкцию инициализации индекса цикла.
Вычислить boolean выражение.
Если оно true, выполняет инструкции «тела цикла» иначе – выходит из цикла (за закрывающую }).
Затем выполнить инкрементное выражение (т.е. инкрементное выражение срабатывает в конце тела цикла!)
Повторить (repeat)
Замечание: Можно преобразовать цикл while в цикл for:
<initialize index>;
while (<boolean expression>)
{
<statements>
<increment index>;
}
ПРИМЕРЫ:
Лр5. Псевдокод. Множественный выбор. Другие конструкции циклов.
Лабораторная работа посвящена операторам Java, которые встречаются гораздо реже, чем операторы if, while и for , но помогают сделать код более коротким, более быстрым или более понятным.
Сначала рассмотрим пример использование псевдокода для задач с нетривиальной логикой.
Псевдокод
Если логика задачи не очень простая, то полезно сначала записать решение на псевдокоде, т.е. представить каждый шаг решения задачи с помощью фраз обычного языка и упрощенных конструкций языка программирования. Когда логика программы полностью представлена псевдокодом, псевдокод преобразуют в код, заменяя фразы обычного языка на комментарии, а упрощенные конструкции языка программирования – на инструкции ЯП.
Пример псевдокода.
Задача «3N+1»: Для заданного положительного целого числа N построить последовательность целых чисел, используя правила:
Положить первое число последовательности равным N.
Если N – четное, то вычислить следующий элемент последовательности как N/2.
Если N – четное, то вычислить следующий элемент последовательности как 3 N + 1.
Если полученный новый элемент последовательности равен 1, то завершить построение. Иначе перейти на 2).
Результат решения задачи печатать в виде: столбца элементов. После последнего элемента печатать число всех полученных элементов.
Псевдокод:
Запросить у пользователя ввод положительного числа;
Пусть N – введенное пользователем число;
while N <= 0 :
печатать сообщение объекта ошибке;
читать другое значение для N;
Зададим счетчик counter = 0;
while N не равно 1 {
if N – четное
вычислить N = N/2;
else вычислить N = N*3 + 1;
Печатать N;
Увеличить счетчик на 1;
}
Печатать значение счетчика.
Код программы:
public class ThreeN1 {
public static void main(String[] args) {
int N; // для вычисления элементов последовательности
int counter; // для подсчета числа элементов
System.out.print("Введите целое положительное число ");
while (N <= 0) {
System.out.print(«Введено не положительное число. Попробуйте еще раз»)
N = StdIn.readInt();
}
// В этой точке программы мы знаем, что N > 0
counter = 0;
while (N != 1) {
if (N % 2 == 0)
N = N / 2;
else
N = 3 * N + 1;
System.out.println(N);
counter = counter + 1;
}
System.out.println();
System.out.print("Всего ");
System.out.print(counter);
System.out.println(" элементов последовательности.");
} // end of main()
} // end of class ThreeN1
Оператор switch делает код короче и понятнее
Операторы условного перехода if и if-else применяются для выбора одной или двух альтернатив в выборе следующей инструкции в ходе исполнения кода. Иногда в решаемой задаче нужно выбрать более двух взаимно исключаемых альтернатив. Можно использовать для этого цепочку из нескольких if-else, но Java предлагает инструкцию switch для прямого выбора альтернатив.
Пример: Как по номеру дня недели напечатать название дня недели?
Решение
Int day = 2;
switch (day)
{
case 1: System.out.println("Пон"); break;
case 2: System.out.println("Вт"); break;
case 3: System.out.println("Ср"); break;
case 4: System.out.println("Чтв"); break;
case 5: System.out.println("Птн"); break;
case 6: System.out.println("Сб"); break;
case 7: System.out.println("Вск"); break;
default: System.out.println("Введено число не из отрезка [1,7]"); break // рекомендуется исп-ть
}