Loading...

Циклдар

 

    Башкаруу структураларынын дагы бир түрү циклдер болуп саналат. Циклдер белгилүү шарттарга жараша белгилүү бир аракетти көп жолу аткарууга мүмкүндүк берет. Java тилинде циклдердин төмөнкү түрлөрү бар:

  • for
  • while
  • do...while

For цикли

for циклинин төмөнкү расмий аныктамасы бар:

for ([эсептегичти инициализациялоо]; [шарт]; [эсептегичтин өзгөрүүсү])

{

    // кыймыл

}

цикл үчүн стандартты карап көрөлү:

@A@

for (int i = 1; i < 9; i++){

    System.out.printf("%d квадраты %d \n", i, i * i);

}

@A@

Цикл декларациясынын биринчи бөлүгү, int i = 1, эсептегич i түзөт жана инициализациялайт. Эсептегич int тибинде болушу шарт эмес. Бул флоат сыяктуу башка ар кандай сандык түрү болушу мүмкүн. Цикл аткарылганга чейин, эсептегичтин мааниси 1ге барабар болот. Бул учурда, бул өзгөрмө декларациясы менен бирдей.

 

Экинчи бөлүк - цикл аткарыла турган шарт. Бул учурда цикл i 9га жеткенге чейин иштейт.

 

Ал эми үчүнчү бөлүк эсептегичти бирге көбөйтүүдө. Дагы бир жолу айтам, биз бир көбөйтүп кереги жок. Сиз төмөндөтө аласыз: i--.

Натыйжада, цикл блогу iнин мааниси 9га барабар болмоюнча 8 жолу иштейт. Жана ар бир жолу бул маани 1ге көбөйөт.

 

Циклди жарыялоодо бардык шарттарды көрсөтүүнүн кереги жок. Мисалы, биз мындай жаза алабыз:

@A@

int i = 1;

for (; ;){

    System.out.printf("Квадрат числа %d равен %d \n", i, i * i);

}

@A@

Циклдин аныктамасы ошол эле бойдон калууда, азыр гана аныктамадагы блоктор бош: үчүн (; ;). Эми эч кандай инициализацияланган эсептегич өзгөрмө жок, шарт жок, ошондуктан цикл түбөлүккө иштейт - чексиз цикл.

 

Же сиз бир катар блокторду өткөрүп жиберсеңиз болот:

@A@

int i = 1;

for (; i<9;){

    System.out.printf("Квадрат числа %d равен %d \n", i, i * i);

    i++;

}

@A@

Бул мисал биринчи мисалга барабар: бизде да эсептегич бар, болгону ал циклден тышкары түзүлгөн. Бизде циклды аткаруу шарты бар. Ал эми for блогунун өзүндө эсептегичтин өсүшү бар.

 

for цикли бир эле учурда бир нече өзгөрмөлөрдү аныктап, башкара алат:

@A@

int n = 10;

for(int i=0, j = n - 1; i < j; i++, j--){

            

    System.out.println(i * j);

}

@A@

Do цикли

Do цикли адегенде цикл кодун аткарат, андан кийин while операторундагы шартты текшерет. Жана бул шарт чын болсо да, цикл кайталанат. Мисалы:

@A@

int j = 7;

do{

    System.out.println(j);

    j--;

}

while (j > 0);

@A@

Бул учурда, цикл коду j нөлгө чейин 7 жолу иштейт. Белгилей кетчү нерсе, do цикли while операторундагы шарт туура эмес болсо дагы, аракеттер жок дегенде бир жолу аткарылаарына кепилдик берет. Ошентип, биз жаза алабыз:

@A@int j = -1;

do{

    System.out.println(j);

    j--;

}

while (j > 0);@A@

Башында j 0ден аз болсо да, цикл дагы бир жолу аткарылат.

 

while цикли

while цикли дароо кандайдыр бир шарттын чындыгын текшерет, эгер шарт чын болсо, цикл коду аткарылат:

@A@int j = 6;

while (j > 0){

 

    System.out.println(j);

    j--;

}@A@

Continue жана break оператору

break оператору цикл өз ишин бүтүрө элек болсо дагы, каалаган убакта циклден чыгууга мүмкүндүк берет:

 

Мисалы:@A@

for (int i = 0; i < 10; i++){

    if (i == 5)

        break;

    System.out.println(i);

}@A@

Эсептегич 5ке жеткенде, break оператору ишке кирет жана цикл аяктайт.

 

Эми муну жасайлы, эгерде сан 5 болсо, цикл бүтпөйт, жөн гана кийинки итерацияга өтөбүз. Бул үчүн, биз улантуу билдирүүсүн колдонобуз:

@A@for (int i = 0; i < 10; i++){

    if (i == 5)

        continue;

    System.out.println(i);

}@A@

Бул учурда, цикл 5 санына жеткенде, программа жөн гана ал санды өткөрүп жиберип, кийинкиге өтөт.