1. Общ преглед
В най-елементарния смисъл програмата е списък с инструкции. Контролните структури са блокове за програмиране, които могат да променят пътя, по който преминаваме през тези инструкции.
В този урок ще изследваме структурите за управление в Java.
Има три вида контролни структури:
- Условни разклонения, които използваме за избор между два или повече пътя. Има три типа в Java: if / else / else if , троичен оператор и превключвател .
- Цикли, които се използват за итерация през множество стойности / обекти и многократно изпълнение на конкретни кодови блокове. Основните типове цикли в Java са за , while и do while .
- Изявления за разклоняване, които се използват за промяна на потока от контрол в цикли. В Java има два типа: прекъсване и продължаване .
2. Ако / Иначе / Иначе Ако
В случай / друго твърдение е най-основните структури за контрол, но също така може да се счита за самата основа на вземане на решения в програмирането.
Докато if може да се използва сам по себе си, най-често използваният сценарий е избор между два пътя с if / else :
if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }
Теоретично можем да безкрайно да веригираме или да влагаме блокове if / else , но това ще навреди на четливостта на кода и затова не се препоръчва.
Ще разгледаме алтернативни твърдения в останалата част на тази статия.
3. Тернарен оператор
Можем да използваме тройния оператор като стенографски израз, който работи като оператор if / else .
Нека да видим отново нашия пример if / else :
if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }
Можем да рефакторираме това с тройка, както следва:
System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");
Докато тройката може да бъде чудесен начин да направим нашия код по-четлив, той не винаги е добър заместител на if / else.
4. Превключване
Ако имаме няколко възможности за избор, можем да използваме оператор за превключване .
Нека отново видим прост пример:
int count = 3; switch (count) { case 0: System.out.println("Count is equal to 0"); break; case 1: System.out.println("Count is equal to 1"); break; default: System.out.println("Count is either negative, or higher than 1"); break; }
Три или повече твърдения if / else могат да бъдат трудни за четене. Като едно от възможните решения, можем да използваме превключвателя, както се вижда по-горе.
Освен това имайте предвид, че превключвателят има обхват и ограничения за въвеждане, които трябва да помним, преди да го използваме.
5. Цикли
Използваме цикли, когато трябва да повторим един и същ код няколко пъти последователно.
Нека да видим един бърз пример за сравними за и докато тип вериги:
for (int i = 1; i <= 50; i++) { methodToRepeat(); } int whileCounter = 1; while (whileCounter <= 50) { methodToRepeat(); whileCounter++; }
И двата кодови блока по-горе ще извикат methodToRepeat 50 пъти.
6. Прекъсване
Трябва да използваме break, за да излезем рано от цикъл.
Да видим бърз пример:
List names = getNameList(); String name = "John Doe"; int index = 0; for ( ; index < names.length; index++) { if (names[index].equals(name)) { break; } }
Тук търсим име в списък с имена и искаме да спрем да търсим, след като го намерим.
Обикновено цикълът би отишъл до завършване, но ние използвахме прекъсване тук, за да го накъснем и да излезем рано.
7. Продължете
Най-просто казано, продължавам означава да пропуснем останалата част от цикъла, в който сме:
List names = getNameList(); String name = "John Doe"; String list = ""; for (int i = 0; i < names.length; i++) { if (names[i].equals(name)) { continue; } list += names[i]; }
Тук пропускаме добавянето на дублиращите се имена в списъка.
Както видяхме тук, break и continue може да бъде удобен при итерация, макар че те често могат да бъдат пренаписани с оператори за връщане или друга логика.
8. Заключение
В тази кратка статия научихме какво представляват структурите за управление и как да ги използваме за управление на контрола на потока в нашите Java програми.
Целият код, представен в тази статия, е достъпен в GitHub.