Джерело: FreeCodeCamp Перерахування (enumeration або enum для стислості) Java — це спеціальний тип даних, що містить набір зумовлених констант. Зазвичай enum використовується при роботі зі значеннями, які не потрібно змінювати, наприклад дні тижня, пори року, кольору і так далі. У цій статті ми побачимо, як створити enum і як надати його значення іншим змінним. Ми також дізнаємось, як використовувати enum в операторі switch або циклічно перебирати його значення.
Як створити Enum в Java
Щоб створити enum , ми використовуємо ключове слово enum . Це аналогічно до того, як ви створюєте клас, використовуючи ключове слово class . Ось приклад:
enumColors{
RED,
BLUE,
YELLOW,
GREEN
}
У цьому коді ми створабо enum під ім'ям Colors . Ви можете помітити, що всі значення enum тут написані у верхньому регістрі, але це просто загальна угода. Якщо значення написано у нижньому регістрі, помилки не буде. Кожне значення в enum відокремлюється комою. Далі ми збираємося створити нову змінну і привласнити їй одне із значень нашого enum .
enumColors{
RED,
BLUE,
YELLOW,
GREEN
}publicclassMain{publicstaticvoidmain(String[] args){Colors red =Colors.RED;System.out.println(red);// RED}}
Це схоже на ініціалізацію будь-якої іншої змінної. Тут у коді ми ініціалізували змінну Colors і надали їй одне із значень enum , використовуючи синтаксис dot: Colors red = Colors.RED; . Зверніть увагу, що ми можемо створити наш enum всередині класу Main , і код все одно буде працювати:
publicclassMain{enumColors{
RED,
BLUE,
YELLOW,
GREEN
}publicstaticvoidmain(String[] args){Colors red =Colors.RED;System.out.println(red);}}
Якщо ми хочемо отримати порядковий номер будь-якого значення, нам доведеться використовувати метод ordinal() . Ось ще один приклад:
enumColors{
RED,
BLUE,
YELLOW,
GREEN
}publicclassMain{publicstaticvoidmain(String[] args){Colors red =Colors.RED;System.out.println(red.ordinal());// 0}}
red.ordinal() із наведеного вище коду повертає 0.
Як використовувати Enum в операторі Switch
Зараз ми дізнаємося, як можна використовувати enum в операторі switch :
publicclassMain{enumColors{
RED,
BLUE,
YELLOW,
GREEN
}publicstaticvoidmain(String[] args){Colors myColor =Colors.YELLOW;switch(myColor){case RED:System.out.println("The color is red");break;case BLUE:System.out.println("The color is blue");break;case YELLOW:System.out.println("The color is yellow");break;case GREEN:System.out.println("The color is green");break;}}}
Це дуже простий приклад того, як ми можемо використовувати enum в операторі switch . Ми можемо вивести на консоль "The color is yellow" , тому що це єдиний випадок, який відповідає умові оператора switch .
Як створити циклічний перебір значень enum
Для enum Java є метод values() , який повертає масив значень enum . Ми збираємося використовувати цикл foreach для перебору та друкування значень нашого enum . Зробити це можна ось так:
enumColors{
RED,
BLUE,
YELLOW,
GREEN
}publicclassMain{publicstaticvoidmain(String[] args){for(Colors allColors :Colors.values()){System.out.println(allColors);/*
RED
BLUE
YELLOW
GREEN
*/}}}
Висновок
У цій статті ми дізналися, що таке enum Java, як його створити і як привласнити його значення іншим змінним. Ми також побачабо, як використовувати тип enum з оператором switch , і як можна циклічно перебирати значення enum . Вдалого кодингу!
Цикл while в Java: синтаксис та варіанти застосування
Джерело: Dev.to Сьогодні ми розберемо концепцію та синтаксис циклу while у Java, а також розглянемо, як використовувати цей цикл для перебору масиву.
Концепція циклу while
Цикл while - один з основних типів циклу Java, тому його можна використовувати в програмі для декількох цілей. Як і цикл for цикл while можна застосовувати для виконання операцій на основі умови. У циклі , коли лічильник включається не завжди. Кількість ітерацій циклу while залежить від цього, як часто повертається умова циклу true . Ініціалізація в циклі while у більшості випадків може бути необов'язковою, на відміну від циклу for . Іноді цикл while не завжди виконується в циклі. Візьмемо конкретний приклад:
System.out.println("You Input a wrong number");int i = input.nextInt();while(i==1||i==2||i==3||i==4){System.out.println("inside the while loop block");}//if the user chooses any number different from 1,2,3 and 4.System.out.println("outside the while loop block")
Тут код використовує цикл while для перевірки введення користувача на основі деяких умов, тому він повторюється тільки один раз.
Синтаксис циклу while
while(condition){//Statements}
Умова циклу while приймає аргумент, який повертає логічне значення true чи false . При появі true код у циклі while виконується, але за false цикл завершується.
Потік кожного циклу while
Цикл while має прийнятий потік: ініціалізація > умова > виконання операторів (initialization > condition > statements execution). Перший етап – це етап ініціалізації. Його можна виконати, оголосивши змінну і також ініціалізувавши її. Другий етап - етап умови, цей етап повинен повертати значення true чи false . Якщо він повертає true , оператор у циклі while виконується, але якщо повертається false , цикл завершується.
Використання циклу while як лічильник
Як і цикл for , цикл while також можна використовувати як лічильник. У наведеній нижче програмі використовують цикл while для ітерації від 2 до 20. Це потрібно для виведення на друк парних чисел.
int j =2;while(j <=20){System.out.println(j);
j+=2;}
Як бачите, у програмі j ініціалізується значенням 2, умова перевіряється, якщо j менше або дорівнює 20. Якщо воно повертає true , оператор виконується, але якщо воно повертає false цикл while завершується.
Цикл while можна використовувати для перебору масиву
int[] age ={20,30,40,40,90};int i =0;while(i < age.length){System.out.println(age[i]);
i++;}
У цьому коді ми маємо масив віку, і цикл while використовується для перебору масиву і виведення кожного елемента в масиві. Для перевірки загальної кількості елементів у масиві використовується age.length , у наведеній вище програмі i служить індексом.
Оператор break у циклі while
Оператор break також може використовуватися в циклі while , як і цикл for :
int i =1;while(true){System.out.println(i);if(i ==20){break;}
i++;}
У наведеній вище програмі оператор break використовувався, щоб зупинити програму від нескінченного виконання. While(true) означає, що програма завжди повертатиме true .
Цикл while можна використовувати для перевірки введення користувача
System.out.println("Select an option\n"+"1.Add Users\n"+"2.Delete Users");int x = input.nextInt();while(x==1||x==2){//Do something}System.out.println("You Input a wrong number");
У наведеній вище програмі цикл while використовується для перевірки введення користувача і для гарантії того, що користувач вибирає або 1, або 2. Якщо вибирає інше число, то виконується System.out.println ("You Input a wrong number"); .
Оператор умови з циклом while
int i =0;while(i<10){
i++;if(i==5){continue;}System.out.println(i);}
Оператор умови також можна використовувати в циклі while , щоб пропустити конкретну ітерацію. У наведеній вище програмі оператор if використовується для перевірки i==5 якщо він повертає true , то ця конкретна ітерація буде пропущена.
Проект циклу while
Давайте створимо гру-угадайку, використовуючи цикл while .
importjava.util.*;publicclassMain{staticScanner input =newScanner(System.in);staticboolean hasWon;staticint count;staticint guess;publicstaticvoid main (String[] args){System.out.println("Welcome to guess world");System.out.println("Do you want to start the game? ");System.out.println("1.Yes\n"+"2.No");int option= input.nextInt();int guessNumber =(int)Math.floor(Math.random()*10+1);if(!( option ==2)){System.out.println("Welcome, choose a guess between 1 and 10\n"+"you have only ten trials");while(count <=10){int userGuess = input.nextInt();if(userGuess == guessNumber){
hasWon =true;System.out.println("Congratulation, you guessed right at "+ count +" count");
count++;break;}elseif(userGuess < guessNumber){
hasWon =false;System.out.println("Oops, you guessed a lower number, try an higher one");
count++;}elseif(userGuess > guessNumber){System.out.println("Oops, you guessed an high number, try an lower one");
hasWon =false;}}if(hasWon ==false){System.out.println("You trials exceeds 10");}}}}
У цій програмі ми створюємо гру в угадайку цифр, використовуючи цикл while . Гравець має лише 10 спроб. Як тільки кількість разів, коли він грав у гру, перевищує 10, гра завершується. Якщо гравець вгадав правильну цифру, повідомлення з вітанням відображається на консолі.
Висновок
Цикл, який тільки здається складним, освоїти його не так важко. Крім того, він є другим найбільш часто використовуваним циклом Java і може використовуватися для різних цілей.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ