JavaRush /Java Blog /Random-TK /Operasiýa operatorlary
articles
Dereje

Operasiýa operatorlary

Toparda çap edildi
Java üç bökmek operatory goldaýar break- continuewe return. Dolandyryşy programmaňyzyň başga bir bölegine geçirýärler. Operatorlaryň hersine jikme-jik seredeliň. Geçiş operatorlary - 1

Operatory ulanmakbreak

Java-daky operator breaküç ýagdaýda ulanylýar. Ilki bilen, öň görşüňiz ýaly, sözlem bölümlerinde jümleleriň yzygiderliligini tamamlaýar switch. Ikinjiden, aýlawdan çykmak üçin ulanylyp bilner. Üçünjiden, şertsiz bökmek operatorynyň "siwilizlenen" görnüşi hökmünde ulanylyp bilner goto. Bu bölüm soňky iki ýagdaýy düşündirýär. breakAýlawdan çykmak üçin ulanyň Şertli breakaňlatmany we aýlaw korpusynda galan kodlary aýlap, aýlawy derrew bes etmäge mejbur edip bilersiňiz. Haçan-da bir aýlawyň içinde bir jümle breakgabat gelse, ikinjisi gutarýar we programma gözegçiligi onuň yzyndaky jümlä geçirilýär. Pleönekeý mysal:
// Использование break для выхода из цикла.
public class BreakLoop {

  public static void main(String[] args) {
    for (int i = 0; i < 100; i++) {
      if (i == 4) {
        break; // завершить цикл, если i = 4
      }
      System.out.println("i: " + i);
    }
    System.out.println("Цикл завершен.");
  }
}
Bu programma aşakdaky netijäni berýär:
i: 0
i: 1
i: 2
i: 3
Цикл завершен.
Bu aýlaw, forbeýannamalaryny 0-dan 99-a çenli ýerine ýetirmek üçin döredilen hem bolsa, operator break4 ýaşymda ir işlemegine sebäp bolýar. Operator breakJava-yň islendik aýlawy, şol sanda bilkastlaýyn çäksiz aýlawlar bilen ulanylyp bilner. Mysal üçin, aşakda aýlaw ulanyp kodlanan öňki programma bar while. Bu programmanyň çykyşy öňküsi bilen deňdir.
// Использование break для выхода из while-цикла.
public class BreakLoop2 {

  public static void main(String[] args) {
    int i = 0;
    while (i < 100) {
      if (i == 4) {
        break; // закончить цикл, если i = 4
      }
      System.out.println("i: " + i);
      i++;
    }
    System.out.println("Цикл завершен.");
  }
}
Içindäki aýlawlaryň toplumynda ulanylanda, jümle breakdiňe içki aýlawdan çykar. Mysal üçin:
// Использование break во вложенных циклах.
public class BreakLoop3 {

  public static void main(String[] args) {
    for (int i = 0; i < 3; i++) {
      System.out.print("Итерация " + i + ": ");
      for (int j = 0; j < 10; j++) {
        if (j == 4) {
          break; // закончить цикл, если j = 4
        }
        System.out.print(j + " ");
      }
      System.out.println();
    }
    System.out.println("Цикл завершен.");
  }
}
Bu programma aşakdaky netijäni berýär:
Итерация 0: 0 1 2 3
Итерация 1: 0 1 2 3
Итерация 2: 0 1 2 3
Цикл завершен.
Görşüňiz ýaly, breakiçki aýlawdaky jümle diňe şol aýlawyň kesilmegine sebäp bolýar. Daşarky aýlaw täsir etmeýär. Geliň, ýene iki teswir edeliň break. Birinjiden, aýlawda birnäçe jümle peýda bolup biler break. Şeýle-de bolsa, seresap boluň. Olaryň köpüsi koduňyzy bozmaga ýykgyn edýärler. Ikinjiden, break- operatory ýatyrýan switch, diňe berlen switchoperatora täsir edýär (we ony öz içine alýan aýlawlar däl). Düşündiriş: Breakaýlawy bes etmegiň adaty serişdesi hökmünde döredilmedi. Bu maksat aýlaw sözbaşysynyň şertli aňlatmasy bilen üpjün edilýär. Operator breakdiňe belli bir ýagdaý ýüze çykanda aýlawy döwmek üçin ulanylmaly.

breakForma hökmünde ulanyňgoto

Wyklýuçatel jümlelerinde we aýlawlarynda ulanmakdan başga-da , breakdiňe "medeniyetli" görnüşi hökmünde ulanylyp bilner goto. gotoJava şahamçany özbaşdak we gurluşsyz ýerine ýetirýändigi üçin operatory öz içine almaýar . Güýçli ulanýan kod, gotodüşünmek we goldamak adatça kyn. Şeýle hem, käbir düzüji optimizasiýalary ýok edýär. Şeýle-de bolsa, programmada gotogözegçilik akymynyň gymmatly we kanuny gurluş bolan birnäçe ýeri bar. Mysal üçin, gotoçuňňur höwürtgelenen aýlawlar toplumyndan çykanyňyzda peýdaly bolup biler. Şeýle ýagdaýlary çözmek üçin Java operatoryň giňeldilen görnüşini kesgitleýär break. Ony ulanyp, bir ýa-da birnäçe kod blokundan çykyp bilersiňiz. Bu bloklar aýlawyň ýa-da jümläniň bir bölegi bolmaly däl switch. Bu islendik blok bolup biler. Ondan soň, ýerine ýetirişiň nirede dowam etjekdigini anyklap bilersiňiz, sebäbi bu forma bellik bilen işleýär we kynçylyklaryndan geçip, breakpeýdalaryny üpjün edýär . gotoBellikli jümläniň breakaşakdaky umumy görnüşi bar: break label; Ine label, käbir kod blokyny kesgitleýän belligiň ady. Bu forma breakýerine ýetirilende, gözegçilik atlandyrylan kod blokyndan (belligi bellikde görkezilen break) şol blokdan soňky beýannama geçirilýär. Bellenen kod toplumy bu jümläni öz içine almalydyr break, ýöne bu goşulmagyň gönüden-göni bolmagy talap edilmeýär (ýagny, breaköz belligi bilen bir blokda däl-de, içinde ýerleşdirilen blokda hem bolup biler) . Diýmek, breaköýjükli bloklaryň toplumyndan gaçmak üçin bellikli operatory ulanyp bilersiňiz. breakAöne öz içine almaýan kod blokyny ulanyp bilmersiňiz break. Blokyň adyny bellemek üçin blokyň başynda bellik goýuň (açylýan egri ýaýdan öň). Bellik, içegäniň yzyndaky islendik Java kesgitleýjisi. Blok bellik edilenden soň, onuň belligi operatora argument hökmünde ulanylyp bilner break. Bu bellenen blokyň soňundan ýerine ýetirilişiň dowam etmegine sebäp bolar. Mysal üçin, aşakdaky programmada hersiniň öz belligi bolan üç sany öýjükli blok bar. Operator, iki operatordan geçip, breakbellik bilen bellenen blokyň ujundan öňe geçýär . secondprintln()
// Использование break How цивorзованной формы goto.
public class Break {

  public static void main(String[] args) {
    boolean t = true;
    first:
    {
      second:
      {
        third:
        {
          System.out.println("Перед оператором break.");
          if (t) {
            break second; // выход из блока second
          }
          System.out.println("Данный оператор никогда не выполнится");
        }
        System.out.println("Данный оператор никогда не выполнится ");
      }
      System.out.println("Данный оператор размещен после блока second.");
    }
  }
}
Bu programmany işletmek aşakdaky netijäni berýär:
Перед оператором break.
Данный оператор размещен после блока second.
Bellikli operatoryň iň köp ulanylýanlaryndan biri, breakhöwürtgelenen aýlawlardan gaçmakdyr. Mysal üçin, aşakdaky programmada daşarky aýlaw diňe bir gezek ýerine ýetirilýär:
// Использование break для выхода из вложенных циклов.
public class BreakLoop4 {

  public static void main(String[] args) {
    outer:
    for (int i = 0; i < 3; i++) {
      System.out.print("Итерация " + i + ": ");
      for (int j = 0; j < 100; j++) {

        if (j == 10) {
          break outer; // выйти из обоих циклов
        }
        System.out.print(j + " ");
      }
      System.out.println("Эта строка никогда не будет выведена");
    }
    System.out.println("Цикл завершен.");
  }
}
Programma aşakdaky netijäni berýär:
Итерация 0: 0 1 2 3 4 5 6 7 8 9 Цикл завершен.
Içki aýlaw daşarky daşy gutarmanka iki aýlawyň gutarmaýandygyny görmek aňsat. breakBerkidiji blok üçin kesgitlenmedik haýsydyr bir bellige böküp bilmejekdigiňizi ýadyňyzdan çykarmaň . Mysal üçin, aşakdaky programma nädogry we düzülmez:
// Эта программа содержит ошибку.
public class BreakErr {

  public static void main(String[] args) {
    one:
    for (int i = 0; i < 3; i++) {
      System.out.print("Итерация " + i + ": ");
    }
    for (int j = 0; j < 100; j++) {
      if (j == 10) {
        break one; //He верно!
      }
      System.out.print(j + " ");
    }
  }
}
Bellenen aýlaw jümläni öz içine almaýandygy sebäpli break, dolandyryşy bu blokda geçirmek mümkin däl.

Operatory ulanmakcontinue

Käwagt aýlawyň indiki gaýtalanmagyny ir başlamak peýdalydyr. .Agny, aýlawy ýerine ýetirmegi dowam etdirmeli, ýöne bu aýratyn gaýtalama üçin bedenindäki galan kodlary gaýtadan işlemegi bes etmeli. Aslynda, bu gotoindiki beden amallaryndan aýlaw blokynyň ahyryna geçişdir. Bu amal operator tarapyndan ýerine ýetirilýär continue. Aýlawlarda, operator whilewe do whileoperator continuegözegçiligi aýlawy dolandyrýan şertli aňlatma gönüden-göni geçirilmegine sebäp bolýar. Dolandyryşda, fordolandyryş ilki sözlemiň gaýtalanýan bölegine for, soňra bolsa şertli aňlatma geçýär. Üç aýlawyň hemmesi üçin islendik aralyk kody aýlanýar. Her setirde iki san çap etmek üçin ulanýan mysal programmasy continueaşakda berilýär:
// Демонстрирует continue.
public class Continue {

  public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
      System.out.print(i + " ");
      if (i % 2 == 0) {
        continue;
      }
      System.out.println("");
    }
  }
}
%Bu kod, hatda bir zadyň bardygyny ýa-da ýokdugyny barlamak üçin amaly (modulo) ulanýar i. Şeýle bolsa, aýlaw täze setir belgisini çap etmezden dowam edýär. Programmanyň çykyşy:
0 1
2 3
4 5
6 7
8 9
Operatorda bolşy ýaly break, continuehaýsy aýlaw aýlawynyň dowam etjekdigini görkezýän belligi kesgitläp bilersiňiz. continue0-dan 9-a çenli üçburçluk köpeltmek tablisasyny çap etmek üçin ulanylýan mysal programmasy .
// Использование continue с меткой.
public class ContinueLabel {

  public static void main(String[] args) {
    outer:
    for (int i = 0; i < 10; i++) {
      for (int j = 0; j < 10; j++) {
        if (j > i) {
          System.out.println();
          continue outer;
        }
        System.out.print(" " + (i * j));
      }
    }
    System.out.println();
  }
}
Bu mysaldaky jümle, continueaýlawyň bahalandyrylmagyny tamamlaýar jwe sürülýän aýlawyň indiki gaýtalanmagy bilen dowam edýär i. Bu programmanyň netijesi:
0
 0 1
 0 2 4
 0 3 6 9
 0 4 8 12 16
 0 5 10 15 20 25
 0 6 12 18 24 30 36
 0 7 14 21 28 35 42 49
 0 8 16 24 32 40 48 56 64
 0 9 18 27 36 45 54 63 72 81
Örän seýrek peýdalydyr continue. Munuň bir sebäbi, Java programmalaryň köpüsine laýyk gelýän köp aýlawly jümleleri hödürleýär. Şeýle-de bolsa, gaýtalama möhletini ir ýatyrmak zerur bolan aýratyn ýagdaýlar üçin beýannama continuebu meseläni ýerine ýetirmegiň gurluşly usulyny üpjün edýär.

Operatorreturn

Iň soňky gözegçilik beýany return. Bir usuldan aç-açan gaýdyp gelmek üçin ulanylýar, ýagny programma gözegçiligini çagyryş programmasyna geçirýär. Operator returngeçiş operatory hökmünde klassifikasiýa edilýär. Doly ara alyp maslahatlaşmak usullary ara alnyp maslahatlaşylýança garaşmaly bolsa-da, bu ýerde gysgaça syn berilýär return. Operator, returnusuly çagyrýan programma gaýdyp barmak üçin islendik ýerde ulanylyp bilner. Beýannama returniçindäki usulyň ýerine ýetirilişini derrew tamamlaýar. Aşakdaky mysal muny görkezýär:
// Демонстрирует return.
public class Return {

  public static void main(String[] args) {
    boolean t = true;
    System.out.println("Перед оператором return.");
    if (t) {
      return; // возврат в вызывающую программу
    }
    System.out.println("Этот оператор никогда не выполнится.");
  }
}
Bu returniş wagty Java ulgamyna gaýdyp gelýär, sebäbi jaň edýän ulgam main(). Bu programmanyň netijesi:
Перед оператором return.
println()Soňky jümläniň ýerine ýetirilmeýändigini görüp bilersiňiz . Executionerine ýetirilende returngözegçilik jaň programmasyna geçirilýär. Soňky bellik. Öňki programmada if(t) operator zerur. println()Şeýle bolmasa, Java düzüjisi "ýetip bolmaýan kod" ýalňyşyny atar, sebäbi soňky sözlemiň hiç haçan ýerine ýetirilmejekdigini bilerdi . Bu ýalňyşlygyň öňüni almak üçin (t) operatory ulanylýar if; bu görkeziş üçin düzüjini aldaýar. Asyl çeşmä baglanyşyk: Geçiş operatorlary
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION