Барлық әріптестерге және жай ғана қызығушылық танытқандарға сәлем.
Бүгін біз Java программалау тілінің үзіліс операторы сияқты мүмкіндігін қарастырамыз. Бұл өтпелі операторлар тақырыбына арналған бірінші мақала, сондықтан сізге ұнаса, мен көбірек жазуға қуаныштымын. Бұл мақала негізінен жаңадан бастаған әзірлеушілерге арналғанын бірден атап өткім келеді, ал одан да жоғары деңгейлі студенттер бұл жерден өздері үшін жаңа ештеңе таба алмауы мүмкін. Ендеше, кеттік. Java тілінде бағдарлама нұсқауларының орындалу ретін өзгертудің 2 жолы бар: көшу операторлары және ерекше жағдайларды өңдеу механизмі. Java тілінде үш секіру операторы бар: үзу, жалғастыру және қайтару. Бүгін мен сізді оператормен жақынырақ танысуға шақырамын
break
. Ерекшеліктерді өңдеу өте кең тақырып болғандықтан, ол осы мақаланың ауқымынан тыс. Java тілінде break операторын қолданудың үш жолы бар. Бірінші және ең танымал әдіс - оны циклден ерте шығу үшін пайдалану break
, мысалы:
public class SimpleExample {
public static void main(String[] args) {
findNumberInLoop(3);
}
public static void findNumberInLoop(int number){
for (int i = 0; i < 10; i++) {
if (i == number) {
break;
}
System.out.println(i);
}
System.out.println("cycle was finished");
}
}
Бұл мысал көрсетіледі:
1
2
cycle was finished
i
Бұл цикл есептегіші берілген параметрге number
, яғни 3 санына тең болғанда, циклдің орындалуы ерте тоқтатылатынын білдіреді . Бағдарламада бірнеше кірістірілген циклдар болса, шығыстарды тек ішкі циклден үзіңіз, мысалы:
public class SimpleExample {
public static void main(String[] args) {
findNumberInLoop(3);
}
public static void findNumberInLoop(int number){
for(int i = 0; i < 5; i++) {
for (int j =0; j < 10; j++) {
if(j == number) {
break;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("cycles was finished");
}
}
Бұл мысал нәтижені шығарады:
012
012
012
012
012
cycles was finished
Мысалдан көрініп тұрғандай, ішкі цикл әр жолы 3 санында үзіледі (параметр number
), ал сыртқы цикл 5 рет мақсатты түрде орындалады. Java тілінде цикл ішінде бірнеше үзіліс операторын пайдалануға болады, бірақ бұл ұсынылмайды, өйткені codeтың оқылу мүмкіндігі мен құрылымы айтарлықтай нашарлайды. Екінші қолдану break
- оны фorалдардағы операторлардың орындалуын үзу үшін пайдалану switch
, мысалы:
public class SimpleExample {
public static void main(String[] args) {
square(2);
}
public static void square(int number){
switch (number){
case 1:
System.out.println(number*number);
break;
case 2:
System.out.println(number*number);
break;
case 3:
System.out.println(number*number);
break;
}
System.out.println("after switch");
}
}
Бұл мысалды іске қосу нәтижені береді:
4
after switch
break операторы басқаруды бүкіл блоктан кейінгі codeқа берді switch
. Осы мысалда break
көрсетпесеңіз :switch
public class SimpleExample {
public static void main(String[] args) {
square(2);
}
public static void square(int number){
switch (number){
case 1:
System.out.println(number*number);
case 2:
System.out.println(number*number);
case 3:
System.out.println(number*number);
}
System.out.println("after switch");
}
}
Шығару күткендей болмайды:
4
4
after switch
Бұл блок орындалғаннан кейін case 2
бағдарлама барлық кейінгі іс блоктарын орындауды жалғастырғандықтан болды , бұл бізге сәйкес нәтиже берді. Кейде оператордың бұл мүмкіндігі switch
бізге пайдалы болуы мүмкін, мысалы:
public class SimpleExample {
public static void main(String[] args) {
compare(2);
compare(7);
compare(12);
}
public static void compare(int number){
switch (number){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("number is less than 5 or equal 5");
break;
case 6:
case 7:
case 8:
case 9:
System.out.println("number is greater than 5");
break;
default:
System.out.println("number is less than 0 or greater than 9");
}
System.out.println("after switch");
}
}
Бұл бағдарлама берілген санды 5 санымен салыстырады және келесі нәтижені береді:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Әдіс бірінші рет шақырылғанда, оператор switch
басқаруды операторға , содан кейін ішіндегі case 2
операторға береді . Екінші қоңырау біріншіге ұқсас, бірақ c әрпінен басталады . Үшінші шақыру барлық жағдайлардың ішінде қолайлы мәнді таппайды, сондықтан оператор орындалады . Үшінші әдіс-С операторының орнына операторды қолдану.Ол үшін біз белгімен аталатын оператордың арнайы формасын қолданамыз . Бұл пішін Белгіге ұқсайды - бұл әдетте Java аттар кеңістігіндегі code блогының алдындағы кез келген қолайлы атау. Сонымен қатар, осы code блогын белгімен қолданғаннан кейін code сәйкес белгі бар блоктан кейінгі орыннан орындалуын жалғастырады, мысалы: break
case 5
case 7
default
break
goto
break
break
break метка;
break
public class SimpleExample {
public static void main(String[] args) {
howWeUseLabels(true);
System.out.println();
howWeUseLabels(false);
}
public static void howWeUseLabels(boolean bool) {
firstBlock:{
secondBlock:{
thirdBlock:{
System.out.println("We will see it always");
if(bool) {
break secondBlock;
}
System.out.println("We won't see it if bool == true");
}
System.out.println("We won't see it if bool == true");
}
System.out.println("We will see it always");
}
}
}
Бұл мысал келесі нәтижені береді:
We will see it always
We will see it always
We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
Бірінші әдісті шақырғаннан кейін оператор break
басқаруды блоктың соңына ауыстырады secondBlock
, шығу secondBlock
және , соңында thirdBlock
басқа операторды орындау кезінде . Екінші қоңыраудан кейін экранда барлық жолдар көрсетіледі. Белгілерді циклдарды көрсету үшін де пайдалануға болады. Жапсырмаға тек белгімен көрсетілген code блогының ішінен өтуге болатынын есте ұстаған жөн, мысалы, мұндай code құрастырылмайды: println()
firstBlock
public class SimpleExample {
public static void main(String[] args) {
label:{
System.out.println("inside label");
}
if(true) {
break label;
}
System.out.println("This is error");
}
}
Код пен мәлімдеменің тазалығы туралы ескертпелер break
: Мәлімдемені өте мұқият пайдалану туралы жалпы қабылданған кеңестер бар break
, өйткені пайдалану break
циклді түсінуді қиындатады және бағдарламашыны оның жұмысының нюанстарын түсіну үшін циклдің ішіне қарауға мәжбүр етеді. Қысқа циклдарда сенімдірек және ұзақ және терең кірістірілген циклдарда аса сақтықпен қолдануға болатын эвристикалық ереже бар break
, себебі бұл қателер ықтималдығын арттырады және басқа бағдарламашылар сіздің codeты оқу мен түсінуді қиындатады. break
Мен жоғарыда жазғанымдай, codeта шашыраңқы көп санды пайдалану программист өзінің codeын неге олай жазғанын толық түсінбейтінін көрсетеді. Мұндай циклды бірнеше кіші ілмектерге бөлу арқылы қайта өңдеуді қарастырған жөн. break
Жапсырманы ауыстыру ретінде пайдалану кезінде абай болуға тырысыңыз goto
, себебі бұл code құрылымын қиындатады. break
Мен бүгін java тіліндегі оператор туралы айтқым келгені осы ғана . continue
Мен сындарлы сынға қуаныштымын, сонымен қатар операторлар туралы және return
сізді қызықтыратын болса, жалғасын жазуға дайынмын .
GO TO FULL VERSION