JavaScript-da bayroqlar bilan ishlash
Hozir biz bayroqlar bilan ishlashni o'rganamiz.
Bayroq - bu faqat ikkita qiymat qabul qiladigan
maxsus o'zgaruvchi: true
va false. Bayroqlar yordamida
ma'lum bir narsaning yo'qligini tekshiradigan
masalalarni yechish mumkin:
masalan, massivda ma'lum qiymatga ega
element yo'qligini tekshirish mumkin. Keling,
boshlaymiz.
Keling, quyidagi masalani yechamiz: sonlar massivi berilgan,
unda 3 qiymatiga ega element
bormi yo'qmi tekshirish kerak. Agar
bo'lsa - '+++' chiqaramiz,
yo'q bo'lsa -
'---' chiqaramiz.
Boshlash uchun keling, '+++' ni chiqarishga harakat qilaylik.
Buning uchun massivning barcha elementlarini
aylanamiz va agar bilan so'raymiz - joriy
element 3 qiymatiga tengmi.
Agar teng bo'lsa - '+++' ni chiqaramiz:
let arr = [1, 2, 3, 4, 5];
for (let elem of arr) {
if (elem == 3) {
console.log('+++');
}
}
Ammo bizning yechimimiz unchali yaxshi emas: agar
massivda bitta 3 qiymati bo'lmasa,
balki bir nechta bo'lsa, '+++' bir necha marta
chiqadi. Keling, massivni o'zgartiramiz (ikki ta
3 qiymatiga ega element qilamiz) va bunga ishonch hosil qilamiz:
let arr = [1, 2, 3, 4, 3, 5];
for (let elem of arr) {
if (elem == 3) {
console.log('+++'); // bir necha marta chiqaradi
}
}
Muammoni tuzatamiz: agar element topilgan bo'lsa,
break yordamida
siklni tugatamiz:
let arr = [1, 2, 3, 4, 3, 5];
for (let elem of arr) {
if (elem == 3) {
console.log('+++');
break; // siklni tugatamiz
}
}
Keling, endi massivda umuman 3 qiymatiga ega
element bo'lmasa, '---' chiqadigan qilishga harakat qilaylik. Keng tarqalgan
xato - bizning if ga else qo'shish -
bunda '---'
3 bo'lmagan barcha elementlar uchun
chiqadi:
let arr = [1, 2, 3, 4, 5];
for (let elem of arr) {
if (elem == 3) {
console.log('+++'); // 3-elementida chiqaradi
} else {
console.log('---'); // 1, 2, 4, 5-elementlarida chiqaradi
}
}
Shunday qilib, else qo'shish g'oyasi - yomon
g'oya, ishlamaydi. Shu kabi
masalalarni yechish uchun (bunday masalalar etarlicha
tez-tez uchraydi) bayroq deb ataladigan narsalardan foydalaniladi.
Yuqorida aytib o'tilganidek, bayroq - bu shunday
o'zgaruvchiki, ikkita qiymat qabul qiladi:
true yoki false.
Shunday qilib, keling, flag o'zgaruvchisini yarataylik
quyidagi qiymat bilan: agar u true ga teng bo'lsa,
demak massivda 3 elementi bor, agar
false bo'lsa, demak bunday element yo'q.
Boshlang'ichda flag o'zgaruvchisini
false qiymatiga o'rnatamiz - ya'ni massivda
3 elementi yo'q deb hisoblaymiz:
let arr = [1, 2, 3, 4, 5];
let flag = false; // massivda 3 elementi yo'q deb hisoblaymiz
Keyin ilgari qilganimizdek siklni ishga tushiramiz.
Agar sikl massivda 3 elementi borligini aniqlasa -
flag o'zgaruvchisini true qiymatiga o'rnatamiz
va break yordamida siklndan chiqamiz:
let arr = [1, 2, 3, 4, 5];
let flag = false; // massivda 3 elementi yo'q deb hisoblaymiz
for (let elem of arr) {
if (elem == 3) {
flag = true; // element bor - flag o'zgaruvchisini qayta o'rnatamiz
break; // siklndan chiqamiz
}
}
Massivda 3 bormi
yo'qmi degan savolga javobni faqat sikl tugagandan keyin bera olamiz.
Va bu javob bizda allaqachon bor: sikl tugagandan keyin
flag o'zgaruvchisi false da qolishi mumkin
yoki agar sikl massivda 3 borligini anqilagan bo'lsa true qiymatiga o'zgarishi mumkin:
let arr = [1, 2, 3, 4, 5];
let flag = false;
for (let elem of arr) {
if (elem == 3) {
flag = true;
break;
}
}
// bu yerda flag o'zgaruvchisi true yoki false ga teng
Endi sikl tugagandan keyin biz if yasashimiz mumkin,
u flag o'zgaruvchisiga qaraydi va
ekranga '+++' yoki '---' ni chiqaradi:
let arr = [1, 2, 3, 4, 5];
let flag = false;
for (let elem of arr) {
if (elem == 3) {
flag = true;
break;
}
}
if (flag === true) {
console.log('+++');
} else {
console.log('---');
}
Massiv berilgan:
let arr = ['a', 'b', 'c', 'd', 'e'];
Ushbu massivda 'c' elementi
bormi yo'qmi tekshiring.
Agar bo'lsa - '+++' ni chiqaring,
yo'q bo'lsa - '---' ni chiqaring.
Sonning tub yoki tub emasligini tekshiradigan kod yozing. Tub son faqat bitta va o'ziga qoldiqsiz bo'linadi, boshqa sonlarga bo'linmaydi.