1. break
Komandası
Gəlin əvvəlki dərsdəki nümunəni nəzərdən keçirək:
Kod | İzah |
---|---|
|
Proqram, konsoldan exit sətri daxil edilənədək məlumatları oxuyacaq. |
Proqram konsoldan məlumatları oxuyur, exit
sözü daxil edilənədək. Əgər bu sözü daxil etsəniz, isExit
dəyişəni true
qiyməti alacaq və dövrün !isExit
şərti false
olacaq, beləliklə dövr dayanacaq.
Java-da xüsusi break
operatoru var ki, o, bu cür məntiqin yazılmasını sadələşdirir. Əgər break
komandasını dövrün içində icra etsəniz, dövr dərhal dayanır: proqram dövrün arxasındakı əmrləri icra etməyə davam edir. Bu komanda çox sadədir:
break;
İndi break
istifadə edərək, əvvəlcə nəzərdən keçirdiyimiz nümunəni yenidən yazaq:
Kod | İzah |
---|---|
|
Proqram, konsoldan exit sətri daxil edilənədək məlumatları oxuyacaq. |
2. continue
komandası
Amma break
dövrün davranışını idarə etməyə imkan verən yeganə operator deyil. Java-da daha bir operator var — continue
. Əgər dövrün içində continue
komandasını icra etsək, dövrün cari iterasiyası erkən bitəcək.
Dövrün gövdəsinin bir dəfə icrası iterasiya adlanır. continue
komandası dövrün cari iterasiyasını dayandırır, amma dövrü özü dayandırmır, bu, break
komandasından fərqlidir. Komanda çox qısa görünür:
continue;
Bu continue
operatoru çox rahatdır, əgər dövrün bəzi hallar üçün gövdəsini "ötürmək" istəyiriksə.
Məsələ: proqram yazaq ki, ekrana 1
dən 20
yə qədər 20
ədəd çıxarsın və bu zaman 7
-yə bölünən ədədləri keçsin. Kod belə görünə bilər:
Kod | İzah |
---|---|
|
Proqram ekrana 1 dən 20 yə qədər ədədləri çıxarır. Əgər ədəd 7 -yə bölünürsə (bölmənin qalığı 0 -dır), ekrana çıxarma ötürülür. |
Əslində belə bir kod işləməyəcəkdir, çünki i
7
rəqəmində donub qalacaq. Çünki continue
çağırışı System.out.println(i)
və i++
əmrlərini ötürməyə səbəb olub. Ona görə də 7
dəyərinə çatdıqda i
dəyişməyi dayandıracaq və dövr sonsuz olaraq icra olunacaq.
Biz məxsusi olaraq belə bir kod yazdıq, çünki bu çox yayılmış bir səhvdir. Bunu necə düzəltmək olar?
Burada iki variant var:
Variant 1: continue
-dan əvvəl, amma i % 7
-dən sonra i
-ni dəyişin
Variant 2: i
-ni dövrün başlanğıcında dəyişdirin. Amma bu halda başlanğıc i
dəyəri 0
olmalıdır.
Variant 1 | Variant 2 |
---|---|
|
|
GO TO FULL VERSION