7-dars Javada For Loop (Takrorlanuvchi sikl operatori).

7-dars Javada For Loop (Takrorlanuvchi sikl operatori).

Takrorlanuvchi sikl operatorlari

O'z nomi bilan ma'lum bo'lib turibdi takrorlanuvchi ya'ni qandaydir jarayonni qayta va qayta takrorlanishidir. Yerning quyosh atrofida aylanishi yil fasllarning almashinishi va h.k.larni misol qilib keltirish mumkin. Takrorlanuvchi ish harakatlar qandaydir shartlar asosida bajariladi. Ularning boshlang'ich, oxirgi nuqtalari va bajarilish davriyligi mavjud bo'ladi. Misol uchun, yerning quyosh atrofida aylanishini olsak, boshlang'ich nuqta 1-kun ya'ni 1-yanvar oxirgi nuqta 365-kun bu esa 31-dekabr takrorlanishi 1 kunga teng. Atrofimizda bunga o'xshash takrorlanvchi ish harakatlar shunchalik ko'pki, ularni sanab tugata olmaymiz. Misol tariqasida kundalik hayotimizda doimiy sodir bo'ladigan bir jarayoni tahlil qilib, uning javada dasturiy ko'rinishi qanday bo'lishini ko'rib chiqsak.

Misol: Tasavvur qiling ovqat tayyorlash uchun 10 ta kartoshkani tozalashga oldik. Qo'limizda 10 ta kartoshka bor ularni tozalash uchun birinchi kartoshkadan boshlab 10-kartoshkagacha tozalamaguncha xar bir kartoshkani birma-bir tozalab chiqamiz. O'z-o'zidan ko'rinib turibdi kartoshka tozalash jarayoni ketma-ket sodir bo'lyapti(bu jarayon siklga misol bo'la oladi)

  • Tozalangan kartoshkalar o'sib borish qiymati 1 ga teng (chunki ikki yoki undan oshiq kartoshkani bir vaqtda tozalab bo'lmaydi odatda)
  • Boshlang'ich qiymati ham 1 ga teng
  • Agar kartoshkani tozalash jarayonida kartoshkani iste'molga yaroqsiz joylari bo'lsa, kesib tashlanadi ya'ni inson miyasida shu shartlar tekshiriladi.
  • Bu jarayonni tozalangan kartoshkalar soni 10 ga teng bo'lguncha amalga oshiramiz.

Keling endi bu jarayonlarni java da dasturini tuzib chiqaylik.

public class Tozalash {
 
public static void main(String[] args) {
 
    Scanner in = new Scanner(System.in);
    int aynigan = 1; // shartli ravishda shart tekshirish uchun shu qiymatlar kiritildi

    int buzulgan = 2; // shartli ravishda shart tekshirish uchun shu qiymatlar kiritildi

    for (int i = 1; i <= 10; i++) {
        System.out.println(i+"-kartoshkani Holatini kiriting \n yaxshi bo'lsa 0 ni \n aynigan bo'lsa 1 mi \n buzulgan bo'lsa 2 ni ");

        int kartoshkaHolati = in.nextInt(); //kartoshkani holatini ko'rsatuvchi qiymatlar

        if (kartoshkaHolati == aynigan || kartoshkaHolati == buzulgan) {
 
            System.out.println("Buzulgan joyi kesib tashlansin ");
        }
        System.out.println(i +"-kartoshka tozalandi \n");
        }
        System.out.println("10 ta kartoshka tozalandi");
    } 
}

Ekranda :

1-kartoshkani Holatini kiriting
yaxshi bo'lsa, 0 ni
aynigan bo'lsa, 1 ni
chirigan joyi bo'lsa, 2 ni
1 // kiruvchi qiymat
Chirigan joyini kesib tashlansin
1-kartoshka tozalandi

Bu jarayon 10 ta kartoshka tozalanib bo'lmaguncha davom etadi. Tushunarliroq bo'lishi uchun blok sxema orqali ko'rib chiqamiz

Sikl boshlangandan sikl sharti false(yolg'on) qiymat bo'lmaguncha davom etadi. Sikl sharti false bo'lgan sikl tugatiladi.

Misol: 1 dan 10 gacha bo'lgan sonlarni ekranda chiqarish

public class ForExample {
 
    public static void main(String[] args) {
 
        for(int i=1;i<=10;i++){ 
        out.print(i+ “, "); 
        } 
    } 
}

Ekaranda :1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Siklning boshlang'ich qiymati 1 ga teng takrorlanishi ham 1 ga teng i ning qiymati o'sib borib qiymat 10 ga teng bo'lmaguncha davom etadi. Yanada tushunarliroq bo'lishi uchun boshqa bir misolni ham ko'rib chiqsak. Berilgan sondan shu songacha bo'lgan raqamlar orasida 3 va 5 ga bo'linadigan raqamlar sonini topish.

public class BulinuvchilarSoni{
 
    public static void main(String[] args) {
 
    int k = 0;
    for (int i = 1; i < 50; i++) {
        if (i % 3 == 0 || i % 5 == 0) {
            k++;
        }
    }
    System.out.println(k);
    } 
}

Natija :22

Javada For-each Loop

For-each loop dan massivlar yoki to'plamlarni yurguzishda foydalaniladi. For-each loop dan foydalanish qulay va oson chunki bunda sikilning boshlang'ich va oxirgi qiymatlari ko'rsatilmaydi. Bunda elementlar birma bir qaytarib uning qiymatlari ko'rsatiladi .

  1. for(Type var:array) {
  2. //code to be executed
  3. }
public class ForEachExample {
 
public static void main(String[] args) {
 
    int arr[]={12,23,44,56,78}; 
    for(int i:arr){ 
    System.out.print(i+", "); 
        } 
    } 
}

Ekranda :

12, 23, 44, 56, 78

Yana biz break yoki continue dan ham foydalanamiz

«Break» operatori.

Bu operator bilan, «switch» haqidagi maqolada biroz tanishgan edik. U yerda bu operator, operatorlar ketma-ketligini tugatish uchun ishlatilgan edi. «Break» operatori dasturda, sikldan chiqish va «shartsiz o'tish» operatori kabi vazifalarni ham bajaradi. Keling ikkala holni ham ko'rib chiqaylik, dastlab bu operator orqali qanday qilib sikldan chiqish mumkinligini ko'rsatamiz.

Oldingi maqolalardan ma'lumki, sikl shartga bog'liq holda operator yoki operatorlar guruhini ishlatib turadi. Qachonki shart yolg'on bo'lsa, sikl o'z ishini tugatadi va sikldan keyingi operatorlar ishlashni boshlaydi. «Break» operatori sikl shartiga qaramasdan, siklni tugatadi, hattoki, sikl sharti rost qiymat qabul qilayotgan bo'lsa ham.

class Test {
 
public  static  void main(String args[]){
 
for(int i=0; i<100; i++){ 
    System.out.println("Son"+i); 
        if (i==10) break;
         } 
    System.out.println("Sikl tugadi"); 
    } 
}

Yuqoridagi misoldan ko'rinib turibdiki, sikl yordamida 100 ta qiymat ekranga chiqarilishi lozim (i<100, 0 dan 99 gacha), lekin bu jarayon oxirigacha bajarilmaydi, chunki «break» operatori mavjud (5-qatorda). Bu operator «if» operatori bilan birga kelgan. Demak, shart qo'yilgan, agar «i» o'zgaruvchi qiymati «10» ga teng bo'lsa, «break» operatori ishga tushadi, ya'ni siklni tugatib dasturdan chiqib ketiladi.

«Continue» operatori.

Bu operator, ishlayotgan sikl qadamini tashlab ketib, navbatdagi qiymat bilan siklni boshidan boshlab davom ettiradi. Sikl tanasida ishlatilgan «continue» operatori, o'zidan keyin kelgan operatorlarni ishlatmaydi. Tub sonlarni chiqarib beruvchi dastur ko'rib chiqaylik.

public class MainClass {
 
    public static void main(String[] args) {
 
        int nValues = 50; 
        OuterLoop: for (int i = 2; i <= nValues; i++) { 
        for (int j = 2; j < i; j++) {
 
        if (i % j == 0) { 
        continue OuterLoop; 
        } 
    } 
    System.out.print(i+","); 
} 
} 
}

Natija:

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47

Shartga ko'ra i ni j ga bo'lganimizda qoldiq 0 ga teng bo'lsa, continue amalni to'xtatib siklning boshiga qaytarib yuboradi.

Manba:


Rayimjonov G'ayratjon - Texnoman foydalanuvchisi

Muallif haqida

Rayimjonov G'ayratjon


Blogdagi so‘nggi maqolalar:


Birinchi bo‘ling!

Iltimos, fikr bildirish uchun saytga kiring yoki ro‘yxatdan o‘ting!