6. For, While va Do-While¶
Ba'zan dasturda bir xil ishni bir necha marta bajarishimiz kerak bo‘ladi.
Masalan, 1 dan 10 gacha bo‘lgan sonlarni chiqarish.
Har bir son uchun alohida System.out.println() yozish noqulay.
Buning o‘rniga loop, ya'ni takrorlash operatorlaridan foydalanamiz.
Java'da asosiy looplar:
for
while
do-while
for¶
for ma'lum bir ishni bir necha marta bajarish uchun ishlatiladi.
Masalan:
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
Natija:
1
2
3
4
5
for qanday ishlaydi?¶
Quyidagi kodga qarang:
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
Bu yerda uchta qism bor:
int i = 1
i <= 5
i++
Birinchisi — boshlang‘ich qiymat:
int i = 1
Ikkinchisi — shart:
i <= 5
Uchinchisi — har bir takrorlanishdan keyin bajariladi:
i++
Ya'ni i har safar 1 taga oshadi.
for bilan matn chiqarish¶
Masalan:
for (int i = 1; i <= 3; i++) {
System.out.println("Salom!");
}
Natija:
Salom!
Salom!
Salom!
Kod uch marta ishladi.
1 dan 10 gacha¶
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
Natija:
1
2
3
4
5
6
7
8
9
10
10 dan 1 gacha¶
Loopni kamaytirish ham mumkin.
for (int i = 10; i >= 1; i--) {
System.out.println(i);
}
Natija:
10
9
8
7
6
5
4
3
2
1
Juft sonlarni chiqarish¶
if va for ni birga ishlatish mumkin.
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
Natija:
2
4
6
8
10
while¶
while ham takrorlash uchun ishlatiladi.
Masalan:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
Natija:
1
2
3
4
5
while shart true bo‘lib turgan paytda ishlaydi.
while qanday ishlaydi?¶
Avval:
int i = 1;
yaratiladi.
Keyin:
i <= 5
tekshiriladi.
Agar shart true bo‘lsa, kod ishlaydi.
Keyin:
i++
bajariladi.
Keyin yana shart tekshiriladi.
Bu jarayon shart false bo‘lguncha davom etadi.
while bilan oddiy misol¶
int son = 1;
while (son <= 3) {
System.out.println("Salom!");
son++;
}
Natija:
Salom!
Salom!
Salom!
Muhim: whileda shartni tugatish¶
Quyidagi kod xavfli:
int i = 1;
while (i <= 5) {
System.out.println(i);
}
Bu yerda i o‘zgarmayapti.
Shuning uchun shart doimo true bo‘lib qoladi.
Natijada loop to‘xtamaydi.
To‘g‘ri:
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
do-while¶
do-while ham while ga o‘xshaydi.
Farqi shundaki, do-while ichidagi kod kamida bir marta bajariladi.
Masalan:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);
Natija:
1
2
3
4
5
while va do-while farqi¶
while avval shartni tekshiradi:
while (shart) {
// kod
}
Agar shart boshidanoq false bo‘lsa, kod umuman ishlamasligi mumkin.
do-while esa avval kodni bajaradi:
do {
// kod
} while (shart);
Shuning uchun kod kamida bir marta ishlaydi.
Misol¶
while:
int i = 10;
while (i < 5) {
System.out.println(i);
}
Bu yerda hech narsa chiqmaydi.
Chunki:
10 < 5
false.
do-while:
int i = 10;
do {
System.out.println(i);
} while (i < 5);
Natija:
10
Chunki do-while avval kodni bir marta bajardi.
break¶
Loopni muddatidan oldin to‘xtatish uchun break ishlatiladi.
Masalan:
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
Natija:
1
2
3
4
i 5 bo‘lganda loop to‘xtadi.
continue¶
continue joriy takrorlanishni tashlab, keyingi takrorlanishga o‘tadi.
Masalan:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Natija:
1
2
4
5
3 chiqarilmadi.
Loop ichida hisoblash¶
Loop yordamida yig‘indi hisoblash mumkin.
Masalan:
int yigindi = 0;
for (int i = 1; i <= 5; i++) {
yigindi = yigindi + i;
}
System.out.println(yigindi);
Natija:
15
Chunki:
1 + 2 + 3 + 4 + 5 = 15
Ichma-ich loop¶
Bir loop ichida boshqa loop bo‘lishi mumkin.
Masalan:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
System.out.println(i + " " + j);
}
}
Bunday loop nested loop deyiladi.
Hozircha ichma-ich looplarning murakkab qismlarini o‘rganish shart emas.
Qaysi loopdan foydalanamiz?¶
Boshlang‘ich darajada quyidagicha eslab qolish oson:
for — takrorlanish soni taxminan ma'lum bo‘lsa.
Masalan:
1 dan 10 gacha
while — ma'lum bir shart bajarilguncha davom etsa.
Masalan:
foydalanuvchi to‘g‘ri qiymat kiritguncha
do-while — kod kamida bir marta bajarilishi kerak bo‘lsa.
Oddiy amaliy dastur¶
1 dan 100 gacha bo‘lgan sonlar yig‘indisini topamiz.
public class Main {
public static void main(String[] args) {
int yigindi = 0;
for (int i = 1; i <= 100; i++) {
yigindi += i;
}
System.out.println(yigindi);
}
}
Natija:
5050
Amaliy mashqlar¶
1-mashq¶
for yordamida 1 dan 10 gacha bo‘lgan sonlarni chiqaring.
2-mashq¶
for yordamida 10 dan 1 gacha bo‘lgan sonlarni chiqaring.
3-mashq¶
1 dan 20 gacha bo‘lgan juft sonlarni chiqaring.
4-mashq¶
1 dan 100 gacha bo‘lgan sonlar yig‘indisini hisoblang.
5-mashq¶
while yordamida 1 dan 10 gacha bo‘lgan sonlarni chiqaring.
6-mashq¶
do-while yordamida 1 dan 5 gacha bo‘lgan sonlarni chiqaring.
7-mashq¶
for yordamida 5 ga ko‘paytirish jadvalini chiqaring:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
va hokazo.
Muhim narsalarni eslab qoling¶
for — kodni ma'lum miqdorda takrorlash uchun.
while — shart true bo‘lib turganda ishlaydi.
do-while — kodni kamida bir marta bajaradi.
break — loopni to‘xtatadi.
continue — joriy takrorlanishni tashlab ketadi.
Masalan:
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
Bu kod 1 dan 5 gacha bo‘lgan sonlarni chiqaradi.
Keyingi bobda arraylar yordamida bir nechta ma'lumotlarni bitta o‘zgaruvchida saqlashni o‘rganamiz.