KNOW INTUIT, Лекция, Оператори и структура на кода
Празно изявление
Точката и запетая ( ; ) е празен израз. Този дизайн е доста приложим там, където не се очаква действие. Прекъсването на празен израз не е възможно.
Всеки оператор или блок може да бъде етикетиран. Етикетът може да бъде зададен като параметър към операторите за прекъсване и продължаване. Обхватът на етикета е ограничен до израза или блока, към който се отнася. Така че в следния пример ще получим грешка при компилация:
Ако има няколко вложени блока и оператори, е позволено да се препраща от вътрешни блокове към етикети, свързани с външни.
Този пример е съвсем правилен:
В същия пример можете да видите, че етикетите използват различно пространство от имена в сравнение с променливите, методите и класовете.
Традиционно използването на етикети не се препоръчва, особено в обектно-ориентираните езици, защото прави много трудно разбирането на реда, в който се изпълнява кодът, и следователно неговото тестване и отстраняване на грешки. За Java тази забрана може да се счита за не толкова строга, тъй като липсва най-опасният оператор goto. В някои ситуации (както в примера с разглежданите вложени цикли) използването на етикети е напълно оправдано, но, разбира се, тяхното използване трябва да бъде ограничено само до най-необходимите случаи.
оператор if
Може би най-разпространената конструкция в Java, както и във всеки друг структуриран програмен език, е операторът за условен скок.
Като цяло структурата изглежда така:
Булевият израз може да бъде всяка езикова конструкция, която връща булев резултат. Обърнете внимание на разликата от езика C, в който, като логическиизразите могат да използват различни типове данни, където ненулев израз се третира като верен, а нулата се третира като невярно. В Java са разрешени само булеви изрази.
Ако булевият израз се изчисли като true, тогава се изпълнява израз или блок 1, в противен случай се изпълнява израз или блок 2. Втората част на оператора ( else ) не е задължителна и може да бъде пропусната. Тези. if(x == 5) System.out.println("Five") е напълно валиден.
if-else изявленията могат да каскадират.
Имайте предвид, че операторът else се отнася до най-близкия оператор if до него. В този случай последното else условие ще бъде изпълнено само ако предишното не е изпълнено. Последната клауза else се отнася до последното if условие и ще бъде изпълнена само ако нито едно от горните условия не е вярно. Ако поне едно от условията е изпълнено, всички следващи условия няма да бъдат изпълнени.
Изречението "Равно на 5" няма да бъде отпечатано в този случай.
изявление за превключване
Операторът switch() е полезен, когато са необходими множество селекции. Изборът се прави въз основа на целочислената стойност.
Освен това фразата по подразбиране не е задължителна.
Параметърът switch може да бъде променлива от тип byte, short, int, char или израз. Изразът трябва в крайна сметка да върне параметър от един от предварително зададените типове. Стойностите на примитивния тип long и референтните типове Long, String, Integer, Byte и т.н. не могат да се използват в оператор за превключване.
При изпълнение на оператора switch, стойността x се сравнява последователно с константите, посочени след case и в случай на съвпадение се изпълнява следният израз:това състояние. Ако изразът се изпълнява нормално и няма преждевременно завършване, тогава изпълнението се извършва за следващ случай. Ако изразът след case прекратява необичайно, тогава целият оператор switch ще бъде прекратен.
Ако не се изпълни оператор case, ще се изпълни операторът по подразбиране, ако съществува в този ключ. Ако няма израз по подразбиране и нито едно от условията на case не е изпълнено, тогава нито един от операторите switch също няма да бъде изпълнен.
Трябва да се отбележи, че за разлика от многовръзката if-else, ако някое условие за случай е изпълнено, тогава изпълнението на превключвателя няма да спре, но изразите, които го следват, ще бъдат изпълнени. Ако това трябва да се избегне, тогава след кода след оператора case се използва операторът break, който прекъсва по-нататъшното изпълнение на оператора switch.
Изявлението case трябва да бъде последвано от литерал, който може да се интерпретира като 32-битова цяло число. Изрази и променливи не могат да се използват тук, освен ако не са окончателни статични.
В този случай резултатът "Е равно на 1 или 2" ще се покаже на конзолата. Ако премахнете инструкциите за прекъсване, ще се покажат и трите реда.
Тази конструкция ще причини грешка по време на компилиране.
Един оператор switch не може да има два случая с една и съща стойност.