Цикл do/while
Якщо необхідно, щоб умова виконувалася хоча б один раз можна скористатися циклом з післяумовою do/while:
do інструкція while (умова);
Зокрема, в програмі з вгадуванням чисел, більш логічніше було б застосувати саме даний цикл, оскільки необхідне хоча б одне виконання тіла циклу.
import java.util.*;
public class Tmp {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); // створюємо Сканер для введення даних з консолі
Random generator = new Random(); // створюємо генератор випадкових чисел
System.out.println("Спробуйте відгадати число від 0 до 10");
int gn;
String more;
do {
gn = generator.nextInt(10); //генерація випадкового числа від 0 до 10;
System.out.print("Введіть число від 0 до 10: ");
int number = in.nextInt();
if (gn == number)
System.out.print("Вгадали!!! Спробуєте ще раз? (Y/N)");
else
System.out.print("Не вгадали. Спробуєте ще раз? (Y/N)");
more = in.next();
} while (more.equals("Y") || more.equals("y"));
}
}
Цикл з лічильником for
Цикл for – доволі часто вживаний цикл. Він застосовується при необхідності виконати інструкції певну кількість раз з одночасним збільшенням або зменшенням певної змінної. Часто використовується для здійснення перебору певних масивів даних, зокрема, також для сортування масивів. Приклад використання:
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
Наведений вище приклад виведе на консолі в стовпчик числа від 1 до 10. Як бачимо в умові циклу перший слот відводиться для ініціалізації змінної, причому оголосити змінну можна і в іншому місці. Другий слот – для умови, яка перевіряється перед виконанням ітерації, третій слот – вказує як модифікувати змінну-лічильник. Тобто в наведеному прикладі при кожному виконанні ітерації, лічильник "і" буде збільшуватися на одиницю поки не стане рівним десяти.
Найчастіше даний цикл використовується для перебору елементів масиву. Масив – це впорядкований набір даних одного типу. Найпростіший масив можна оголосити та ініціалізувати таким чином: int a[]={1, 5, 6, 1, 3};. Для того, щоб звернутися до певного елементу масиву використовуються квадратні дужки з відповідним індексом елементу. Наприклад а[3] – звернення до четвертого елементу масиву (номери елементів відраховуються з нуля). В наступному прикладі створюється масив і послідовно виводяться його елементи:
public class MyArray {
public static void main(String[] args) {
int a[] = {1, 5, 6, 1, 3}; // створюємо масив і заповнюємо його числами
int size = a.length;
System.out.println("Елементи масиву:");
for (int j = 0; j < size; j++) {
System.out.println("а[" + j + "]=" + a[j]);
}
}
}
Результат виконання:
Елементи масиву:
а[0]=1
а[1]=5
а[2]=6
а[3]=1
а[4]=3
Цикл «for each»
Починаючи з java SE 5.0 в мові з’явився новий цикл, призначення якого є перебір елементів масиву або подібних до масиву типів даних (колекції).
Загальний вигляд циклу наступний:
for (type var : arr) {
//тіло циклу
}
Наприклад, вивести елементи масиву, можна таким чином:
for (int element : a)
System.out.println(element);
Використання даного циклу, дозволяє уникнути проблем пов’язаних з помилками при заданні умови в класичному циклі for. В інших мовах програмування цикл такого виду так і називається foreach, проте, щоб уникнути необхідності значних змін в пакетах, в java пішли простішим шляхом і перевантажили цикл for.
