Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java3.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
37 Кб
Скачать
☆

Множинний вибір

Інструкція if/else може бути доволі громіздкою, якщо необхідно здійснити множинний вибір з багатьох альтернатив. Тож як і в С/C++ в java існує інструкція switch, яка здійснити вибір з багатьох варіантів. Щоправда вона дещо незграбна і деякі програмісти вважають за краще уникати її використання.

Наприклад, якщо Ви організовуєте певне меню і пропонуєте користувачу вибрати, номер конкретного пункту, то можна використати наступний код:

Scanner in = new Scanner(System.in);

System.out.print("Select an option (1, 2, 3, 4) ");

int choice = in.nextInt();

switch (choice) {

case 1:

. . .

break;

case 2:

. . .

break;

case 3:

. . .

break;

case 4:

. . .

break;

default:

// bad input

. . .

break;

Якщо пропустити інструкцію break, то всі інші інструкції будуть також виконані. Тобто якщо справдиться умова першого варіанту, то будуть здійснені ще й дії вказані для виконання у всіх інших варіантах.

До версії Java 7, яка вийшла у 2011 році, case мітка мала бути лише цілим числом або нумерованою константою. Починаючи із Java 7 можна перевіряти таким чином на рівність також рядки:

String input = . . .;

switch (input)

{

case "A":

. . .

break;

. . .

}

Цикли

Цикли – це послідовність інструкцій, які можуть повторно виконуватись певну кількість раз в залежності від заданої в програмі умови. Розрізняють цикли з передумовою, з післяумовою та з лічильником.

Цикл while

Цикл while (перекладається як «доки») – це цикл з передумовою, тіло якого (тобто інструкція або блок інструкцій) виконується, якщо умова істинна. Якщо умова з самого початку хибна, то цикл не виконається жодного разу.

Загальний вигляд:

while (умова) інструкція;

Якщо немає фігурних дужок, то перша інструкція, яка йде після оголошення циклу, вважається тілом циклу. Всі інші інструкції знаходяться поза циклом. Якщо в циклі повинні виконуватись кілька інструкцій, то необхідно використати фігурні дужки. Вони також можуть використовуватись при одній інструкції заради кращого візуального розуміння коду.

while (умова){

інструкція 1;

...

інструкція N

}

В наступному прикладі демонструється мінігра із вгадуванням числа від 0 до 10, яка створена з використанням циклу while:

import java.util.*;

public class Game {

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 = "Y";

while (more.equals("Y") || more.equals("y")) { // поки змінна more рівна “Y” або “y”

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(); // отримати відповідь

}

}

}

Результат виконання:

Спробуйте відгадати число від 0 до 10

Введіть число від 0 до 10: 6

Не вгадали. Спробуєте ще раз? (Y/N)y

Введіть число від 0 до 10: 7

Вгадали!!! Спробуєте ще раз? (Y/N) n

Програма генерує випадкове число при кожному повторі циклу і пропонує вгадати його. Після вводу користувачем числа - виводить відповідне повідомлення вгадано чи ні. Після цього пропонується здійснити нову спробу. Якщо користувач вводить з клавіатури “Y" або “y”, то гра продовжується, якщо введе щось інше, то завершується.

Для генерації випадкових чисел використано клас Random, що містить методи для генерації випадкових чисел. Зокрема, у нашій програмі використано метод nextInt(), який дозволяє генерувати випадкові числа.

Для зчитування з клавіатури використано клас Scanner, який був доданий в java 5.0, для зручного вводу з клавіатури. Метод nextInt() – читає ціле число, next() – читає цілий рядок з клавіатури.

Для того, щоб переконатися, що користувач хоче продовжити гру використано метод equals() з класу String - Strint1.equals (String2), що перевіряє чи один рядок (String1) тексту рівний іншому (String2).

У вищенаведеній програмі пояснення потребують три рядка. Для початку Вам необхідно лише в загальному зрозуміти їхнє призначення.

import java.util.*;

Random generator = new Random();

gn=generator.nextInt(10);

Нам необхідний генератор цілих чисел, який реалізовує класс Random у пакеті java.util. Для цього ми імпортуємо відповідний клас (в С/С++ аналогом є підключення бібліотеки). Далі в програмі створюємо змінну generator, яка вказуватиме на екземпляр класу random і дозволятиме звернення до методів даного класу. new Random() - створює відповідний об'єкт. Для генерації випадкових чисел ми використовуємо метод nextInt() класу Random.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]