1. Цикли в нашому житті
У житті нам дуже часто доводиться багато разів виконувати одноманітні дії. Приміром, мені потрібно відсканувати документ, який містить багато сторінок. Для цього я знов і знов повторюю одні й ті самі дії:
- Покласти першу сторінку на сканер
- Натиснути кнопку сканування
- Покласти наступну сторінку
Робити це вручну складно. Добре було б цей процес якось автоматизувати.
Ось іще приклад: я хочу позначити всі непрочитані листи в поштовій скриньці як спам. Колись їх доводилося виділяти й позначати як спам по одному.
Але програмісти — люди ледачі, тому цю функцію вже давно автоматизували: ви просто виділяєте потрібний список листів і натискаєте кнопку «позначити як спам», а ваш поштовий клієнт сам пробігає цим списком і переносить кожен лист у папку для спаму.
Ну що сказати? Зручно, коли комп'ютер або програма можуть зробити сотні й тисячі рутинних операцій одним клацанням. Зараз і ви цьому навчитеся.
2. Цикл while
Оператор if-else суттєво розширив наші можливості програмування: тепер можна писати програми, які виконують різні дії залежно від ситуації. Але є ще одна штука, яка зробить наші програми на порядок потужнішими — це цикли.
У Java є 4 види циклів: while
, for
, for-each
і do-while
. Зараз ми розглянемо найперший із них.
Оператор циклу while
дуже простий і складається лише з двох частин: умови та тіла циклу. Тіло циклу виконується знов і знов, доки умова дорівнює true
. Цикл while
має такий загальний вигляд:
while (умова)
команда;
while (умова)
{
блок команд
}
Все дуже просто. Команда або блок команд виконуються знову й знову, доки умова циклу істинна, тобто дорівнює true
.
Ось як це працює. Спочатку перевіряється умова, і якщо вона істинна, виконується тіло циклу (команда чи блок команд), потім знову перевіряється умова і знову виконується тіло циклу. І так доти, доки умова не стане хибною.
Якщо умова завжди буде істинною, цикл виконуватиметься нескінченно, і програма ніколи не припинить роботу.
А якщо умова з першого разу виявиться хибною, тіло циклу не буде виконано жодного разу.
3. Приклади циклів
Ось декілька практичних прикладів використання циклів.
Код | Пояснення |
---|---|
|
На екран буде виведено 5 рядків:
|
Код | Пояснення |
---|---|
|
На екран буде виведено 10 рядків:
|
Код | Пояснення |
---|---|
|
Програма зчитує числа з клавіатури, доки вводяться саме числа. |
Код | Пояснення |
---|---|
|
Програма буде безліч разів виводити на екран літеру С . |
Код | Пояснення |
---|---|
|
Програма буде вводити рядки з клавіатури,
доки не буде введено рядок |
Функція equals()
у попередньому прикладі використовується для порівняння рядків. Якщо рядки однакові, функція поверне результат true
, а якщо неоднакові, то поверне false
.
4. Цикл у циклі
Під час розгляду умовного оператора ви бачили, що, комбінуючи кілька умовних операторів, можна реалізовувати складну логіку. Тобто всередину одного оператора if
можна вкласти інший if
.
З циклами теж так можна. Щоб створити цикл у циклі, потрібно в тіло першого циклу вписати другий цикл. Ця конструкція має такий вигляд:
while (умова зовнішнього циклу)
{
while (умова внутрішнього циклу)
{
блок команд
}
}
Розгляньмо три задачі.
Задача 1. Приміром, ми хочемо написати програму, яка 4 рази виводитиме на екран слово Мама
. Цикл — це саме те, що нам потрібно. І наш код мав би такий вигляд:
Код | Пояснення |
---|---|
|
На екран буде виведено 4 рядки:
|
Задача 2. Нам потрібно написати програму, яка виводитиме 5 літер А
в одному рядку. Для цього нам знову-таки потрібен цикл. Цей код матиме такий вигляд:
Код | Пояснення |
---|---|
|
Замість println пишемо print , інакше кожна літера A буде в окремому рядку.На екран буде виведено:
|
Задача 3. Нам потрібно вивести на екран прямокутник із літер А
розміром 4 рядки на 5 стовпців. І ось для цього нам вже знадобляться вкладені цикли. Просто візьмімо перший приклад, де ми виводимо 4 рядки, і замінимо код, який виводить один рядок, на код із другого прикладу.
Код | Пояснення |
---|---|
|
Зовнішній цикл позначено фіолетовою рамкою, у ньому використовується змінна n для підрахунку кількості витків циклу.Внутрішній цикл позначено зеленою рамкою. Для підрахунку кількості витків циклу в ньому використовується змінна m .Після виконання внутрішнього циклу потрібно окремою командою перевести курсор на наступний рядок, інакше програма виведе всі літери в один рядок. На екран буде виведено:
|
Для підрахунку кількості виконаних витків у зовнішньому та внутрішньому циклах слід використовувати різні змінні. Крім того, після внутрішнього циклу довелося додати команду System.out.println ()
, адже він друкує літери А
в одному рядку. Тому після виведення всіх літер треба якимось чином перевести курсор на новий рядок.
5. Порівняння циклів: Java і Pascal
Багато хто з вас вивчав у школі мову Pascal. Тому для кращого розуміння матеріалу ми наводимо порівняння циклів while
у мовах Pascal і Java. Якщо ви не знайомі з мовою Pascal, просто пропустіть цей розділ.
Pascal | Java |
---|---|
|
|
|
|
|
|
|
|
|
|
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ