Bütün həmkarlara və sadəcə maraqlananlara salam.
Bu gün biz Java proqramlaşdırma dilinin fasilə operatoru kimi bir xüsusiyyətinə baxacağıq. Bu keçid operatorları mövzusunda ilk məqalədir, buna görə də bəyənsəniz, daha çox yazmaqdan məmnun olaram. Dərhal qeyd etmək istərdim ki, bu məqalə ilk növbədə yeni başlayan tərtibatçılar üçün nəzərdə tutulub və daha qabaqcıl tələbələr burada özləri üçün yeni heç nə tapa bilməzlər. Beləliklə, gedək. Java-da proqram təlimatlarının yerinə yetirilmə ardıcıllığını dəyişdirməyin 2 yolu var: keçid ifadələri və istisnalarla işləmə mexanizmi. Java-da üç keçid operatoru var: break, continue və return. Bu gün sizi operatorla daha yaxından tanış olmağa dəvət edirəm
break
. İstisnaların idarə edilməsi o qədər geniş mövzudur ki, bu məqalənin əhatə dairəsi xaricindədir. Java-da break ifadəsindən istifadə etməyin üç yolu var. Birinci və ən populyar yol, onu dövrədən erkən çıxmaq üçün istifadə etməkdir break
, məsələn:
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");
}
}
Bu nümunə göstərəcək:
1
2
cycle was finished
Bu o deməkdir ki, dövrə sayğacı i
verilən parametrə number
, yəni 3 rəqəminə bərabər olduqda, dövrənin icrası erkən dayandırılır. Proqramda bir neçə iç-içə döngə varsa, o zaman çıxışları yalnız ən daxili dövrədən kəsin, məsələn:
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");
}
}
Bu nümunə çıxışı verir:
012
012
012
012
012
cycles was finished
Nümunədən göründüyü kimi, daxili döngə hər dəfə 3 nömrəsində (parametr number
) kəsilir, xarici döngə isə nəzərdə tutulduğu kimi 5 dəfə yerinə yetirilir. Java-da bir döngə daxilində birdən çox fasilə ifadəsindən istifadə edə bilərsiniz, lakin kodun oxunaqlılığı və strukturu çox pisləşdiyi üçün bu tövsiyə edilmir. İkinci istifadə break
onu filiallarda ifadələrin icrasını dayandırmaq üçün istifadə etməkdir switch
, məsələn:
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");
}
}
Bu nümunəni işə salmaq nəticə çıxaracaq:
4
after switch
Break bəyanatı nəzarəti bütün blokdan sonra koda keçirdi switch
. Bu nümunədə break
qeyd etməsəniz :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");
}
}
Nəticə gözlənildiyi kimi olmayacaq:
4
4
after switch
Bu ona görə baş verdi ki, blok icra edildikdən sonra case 2
proqram bütün sonrakı iş bloklarını icra etməyə davam etdi və bu, bizə müvafiq çıxışı verdi. Bəzən operatorun bu xüsusiyyəti switch
bizim üçün faydalı ola bilər, məsələn:
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");
}
}
Bu proqram verilmiş ədədi 5 rəqəmi ilə müqayisə edir və aşağıdakı nəticəni verir:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Metod ilk dəfə çağırılanda operator switch
idarəetməni operatora , sonra isə -dəki case 2
operatora ötürür . İkinci zəng birinciyə bənzəyir, lakin c ilə başlayır . Üçüncü zəng bütün hallar arasında uyğun qiymət tapmır, ona görə də operator icra olunur . Üçüncü yol C operatorunun yerinə operatordan istifadə etməkdir.Bunun üçün operatorun etiketlə çağırılan xüsusi formasından istifadə edəcəyik. Bu forma Etiketə bənzəyir - bu adətən kod blokundan əvvəl java adlar sahəsindən istənilən uyğun addır. Üstəlik, bu kod blokunu etiketlə tətbiq etdikdən sonra kod müvafiq etiketlə blokdan sonrakı yerdən icra olunmağa davam edəcək, məsələn: 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");
}
}
}
Bu nümunə aşağıdakı çıxışı verəcəkdir:
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
Birinci metod çağırışından sonra operator break
nəzarəti blokun sonuna köçürür secondBlock
, çıxış secondBlock
və sonunda thirdBlock
başqa bir operatoru yerinə yetirir . İkinci zəngdən sonra ekranda bütün sətirlər göstərilir. Etiketlər dövrləri göstərmək üçün də istifadə edilə bilər. Yadda saxlamaq lazımdır ki, etiketə yalnız etiketlə göstərilən kod blokunun daxilindən keçə bilərsiniz, məsələn, belə kod tərtib edilməyəcək: 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");
}
}
Kod və bəyanatın təmizliyinə dair qeydlər break
: İfadədən çox diqqətlə istifadə etmək üçün ümumi qəbul edilmiş tövsiyələr var break
, çünki istifadə break
döngənin başa düşülməsini çətinləşdirir və proqramçının işinin nüanslarını başa düşmək üçün dövrənin içərisinə baxmağa məcbur edir. Daha qısa döngələrdə daha inamlı, uzun və dərin iç-içə döngələrdə isə daha ehtiyatla istifadə edə biləcəyiniz bir evristik qayda var break
, çünki bu, səhv ehtimalını artırır və kodunuzun digər proqramçılar tərəfindən oxunmasını və başa düşülməsini çətinləşdirir. Yuxarıda yazdığım kimi, break
kodun hər tərəfinə səpələnmiş çoxlu sayda .-nin istifadəsi proqramçının kodunu niyə belə yazdığını tam başa düşmədiyini göstərir. Belə bir döngəni bir neçə kiçik döngəyə bölmək yolu ilə yenidən işləməyi nəzərdən keçirməyə dəyər ola bilər. break
Etiketi əvəz edən kimi istifadə edərkən diqqətli olmağa çalışın goto
, çünki bu kod strukturunu çətinləşdirir. Bu gün sizə java-dakı operator haqqında demək istədiyim bütün bunlardır break
. continue
Konstruktiv tənqidlərə şad olaram, həmçinin operatorlar haqqında və return
maraqlanırsınızsa, davamını da yazmağa hazıram .
GO TO FULL VERSION