java

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 java da 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.

  1. public class Tozalash {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. Scanner in = new Scanner(System.in);
  6. int aynigan = 1; // shartli ravishda shart tekshirish uchun shu qiymatlar kiritildi
  7. int buzulgan = 2; // shartli ravishda shart tekshirish uchun shu qiymatlar kiritildi
  8. for (int i = 1; i <= 10; i++) {
  9. 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 ");
  10. int kartoshkaHolati = in.nextInt(); //kartoshkani holatini ko'rsatuvchi qiymatlar
  11. if (kartoshkaHolati == aynigan || kartoshkaHolati == buzulgan) {
  12.  
  13. System.out.println("Buzulgan joyi kesib tashlansin ");
  14. }
  15. System.out.println(i +"-kartoshka tozalandi \n");
  16. }
  17. System.out.println("10 ta kartoshka tozalandi");
  18. }
  19.  
  20. }

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

forloop

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

 

  1. publicclass ForExample {
  2.  
  3. publicstatic void main(String[] args) {
  4.  
  5. for(int i=1;i<=10;i++){
  6.  
  7. out.print(i+ “, ”);
  8.  
  9. }
  10.  
  11. }
  12.  
  13. }

 

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.

  1. public class BulinuvchilarSoni{
  2.  
  3. public static void main(String[] args) {
  4.  
  5. int k = 0;
  6. for (int i = 1; i < 50; i++) {
  7. if (i % 3 == 0 || i % 5 == 0) {
  8. k++;
  9. }
  10. }
  11. System.out.println(k);
  12. }
  13.  
  14. }

Natija :22

Javada For-each Loop

For-each loop dan massivlar yokiy to’plamlarni yurguzishda foydalaniladi. For-each loop dan foydalanish qulay va oson chunkiy bunda sikilning boshlang’icha 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. }

 

  1. publicclass ForEachExample {
  2.  
  3. publicstatic void main(String[] args) {
  4.  
  5. int arr[]={12,23,44,56,78};
  6.  
  7. for(int i:arr){
  8.  
  9. System.out.print(i+”, ”);
  10.  
  11. }
  12.  
  13. }
  14.  
  15. }

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.

  1. class Test {
  2.  
  3. public static void main(String args[]){
  4.  
  5. for(int i=0; i<100; i++){
  6.  
  7. System.out.println("Son"+i);
  8.  
  9. if (i==10) break;
  10.  
  11. }
  12.  
  13. System.out.println("Sikl tugadi");
  14.  
  15. }
  16.  
  17. }

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.

  1. public class MainClass {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. int nValues = 50;
  6.  
  7. OuterLoop: for (int i = 2; i <= nValues; i++) {
  8.  
  9. for (int j = 2; j < i; j++) {
  10.  
  11. if (i % j == 0) {
  12.  
  13. continue OuterLoop;
  14.  
  15. }
  16.  
  17. }
  18.  
  19. System.out.print(i+”,”);
  20.  
  21. }
  22.  
  23. }
  24.  
  25. }

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.

G'ayratjon Rayimjonov
G'ayratjon Rayimjonov

G'ayratjon Rayimjonovning so'nngi maqolalari (hammasini ko'rish)

(504 marta o'qilgan, bugun 1 marta o'qildi)

O'xshash maqolalar: