Hemme kärdeşlere we ýönekeý gyzyklanýanlara salam.
Bu gün Java programma diliniň arakesme operatory ýaly aýratynlygyna serederis. Bu geçiş operatorlary temasyndaky ilkinji makala, şonuň üçin halasaňyz, has köp ýazmaga begenerin. Bu makalanyň ilkinji nobatda täze döredijiler üçin niýetlenendigini we has ösen talyplaryň bu ýerde özleri üçin täze zat tapyp bilmejekdigini derrew belläsim gelýär. Geliň, gideli. Java-da programma görkezmeleriniň ýerine ýetiriliş tertibini üýtgetmegiň 2 usuly bar: bökmek jümleleri we kadadan çykma mehanizmi. Java-da üç bökmek operatory bar: döwmek, dowam etmek we gaýdyp gelmek. Bu gün sizi operatora has ýakyndan synlamaga çagyrýaryn
break
. Kadadan çykma meselesi şeýle giň mowzuk, bu makalanyň çäginden daşda. Java-da arakesmäni ulanmagyň üç usuly bar. break
Ilkinji we iň meşhur usul , aýlawdan ir çykmak üçin ulanmak , mysal üçin:
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 mysal görkeziler:
1
2
cycle was finished
Diýmek, aýlaw hasaplaýjy i
geçen parametr bilen deň bolanda number
, ýagny 3-nji belgä öwrülende, aýlaw ýerine ýetirilişi ir bes edilýär. Programmanyň birnäçe öýjükli aýlawlary bar bolsa, netijeleri diňe içki aýlawdan aýyryň:
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 mysal çykyş edýär:
012
012
012
012
012
cycles was finished
Mysaldan görnüşi ýaly, içki aýlaw her gezek 3 belgide (parametr number
) kesilýär we daşarky aýlaw göz öňünde tutulşy ýaly 5 gezek ýerine ýetirilýär. Java-da, bir aýlawyň içinde birden köp arakesme ulanyp bilersiňiz, ýöne bu maslahat berilmeýär, sebäbi koduň okalmagy we gurluşy gaty peselýär. Ikinji ulanylyş break
, şahalarda jümleleriň ýerine ýetirilmegini kesmek üçin ulanmak switch
, mysal üçin:
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 mysaly işletmek netijäni berer:
4
after switch
Arakesme beýany, ähli blokdan soň koda gözegçilik etdi switch
. Bu mysalda break
görkezmeseňiz :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");
}
}
Çykyş garaşylşy ýaly bolmaz:
4
4
after switch
Bu boldy, sebäbi blok ýerine ýetirilenden soň, case 2
programma bize degişli netijäni berýän indiki ähli blok bloklaryny ýerine ýetirmegi dowam etdirdi. Käwagt operatoryň bu aýratynlygy switch
bize peýdaly bolup biler, mysal üçin:
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 programma berlen belgini 5 san bilen deňeşdirýär we aşakdaky netijäni berýär:
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
Haçan-da bir usul ilkinji gezek çagyrylanda, operator switch
gözegçiligi operatora , soňra case 2
bolsa operatora geçirýär . Ikinji jaň birinjä meňzeýär, ýöne c bilen başlaýar . Üçünji jaň ähli ýagdaýlaryň arasynda laýyk bahany tapmaýar, şonuň üçin operator ýerine ýetirilýär . Üçünji ýol, C operatorynyň ýerine operatory ulanmakdyr . Munuň üçin bellik bilen atlandyrylan operatoryň ýörite görnüşini ulanarys . Bu görnüş Etiketka meňzeýär - bu adatça kod blokundan öň java at giňişliginden islendik laýyk at. Mundan başga-da, bu kod blokyny bellik bilen ulananyňyzdan soň, kod degişli bellik bilen blokdan soň ýerden ýerine ýetirilmegini dowam etdirer: 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 mysal aşakdaky netijäni berer:
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
Ilkinji usul jaňyndan soň, operator break
bloky ujuna geçirýär secondBlock
, çykýar secondBlock
we ahyrynda thirdBlock
başga bir operatory ýerine ýetirýär . Ikinji jaňdan soň ähli setirler ekranda görkezilýär. Etiketkalar siklleri görkezmek üçin hem ulanylyp bilner. Diňe bellik bilen görkezilen kod blokynyň içinden bir bellige baryp biljekdigiňizi ýadyňyzdan çykarmaly däldiris, mysal üçin, şeýle kod düzülmez: 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 we jümle arassalygy barada bellikler break
: Jümläni gaty ünsli ulanmak üçin umumy kabul edilen maslahatlar bar break
, sebäbi ulanylyş break
aýlawy düşünmegi kynlaşdyrýar we programmisti işiniň nuanslaryna düşünmek üçin aýlawyň içine seretmäge mejbur edýär. Gysga aýlawlarda has ynamly we uzyn we çuňňur höwürtgelenen aýlawlarda has seresaplylyk bilen ulanyp boljak ýewreý düzgüni bar break
, sebäbi bu ýalňyşlyklaryň ähtimallygyny ýokarlandyrýar we beýleki programmistler tarapyndan koduňyzyň okalmagyny we düşünilmegini kynlaşdyrýar. Aboveokarda ýazyşym ýaly, köp sanly koduň ýaýramagy break
programmistiň koduny näme üçin ýazandygyna doly düşünmeýändigini görkezýär. Şeýle aýlawy birnäçe kiçi aýlawlara bölüp, gaýtadan işlemegi göz öňünde tutup bileris. break
Belligi çalyşmak üçin ulananyňyzda seresap boluň goto
, sebäbi bu kod gurluşyny kynlaşdyrýar. Ine, şu gün break
java operatory hakda size aýtmak islän zadym. Konstruktiw tankydy begendim, operatorlar hakda continue
we return
gyzyklanýan bolsaňyz, dowamy ýazmaga taýyn.
GO TO FULL VERSION