⊗jsPmLpFl 165 of 505 menu

JavaScriptда флаглар билан ишлаш

Ҳозир биз флаглар билан ишлашни ўрганамиз. Флаг - бу фақат икки қийматни қабул қиладиган махсус ўзгарувчи: true ва false. Флаглар ёрдамида бирор нарсанинг йўқлигини текширадиган масалаларни ечиш мумкин: масалан, массивда аник қийматли элемент йўқлигини текшириш мумкин. Келгила, бошлаймиз.

Келгила, куйидаги масалани ечайлик: сонлар массиви берилган, унинг ичида 3 қийматили элемент бор-йўқлигини текшириш керак. Агар бор бўлса - '+++' чиқаринг, агар йўқ бўлса - '---' чиқаринг.

Бошлаш учун келгила, '+++' чиқариб кўрайлик. Бунинг учун биз массивимизнинг барча элементларини айланиб чиқамиз ва иф билан сўраймиз - айнан элемент 3 қийматига тенгми? Агар тенг бўлса - '+++' чиқарамиз:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Лекин бизнинг ечимимиз жуда яхши эмас: чунки агар массивда битта 3 қиймати эмас, бир нечта бўлса, '+++' бир нечта марта чиқади. Келгила, массивимизни ўзгартирамиз (иккита 3 қийматили элемент қиламиз) ва буни ишонч билан кўрамиз:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // бир нечта марта чиқади } }

Муаммони тузатамиз: агар элемент топилган бўлса, break ёрдамида циклни тугатамиз:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // циклни тугатамиз } }

Келгила, энди шуни қилайликки, агар массивда умуман 3 қийматили элемент бўлмаса, '---' чиқарилсин. Тарқалган нотўғри фикр - бизнинг ифимизга else қўшиш - бу ҳолда '---' 3 бўлмаган барча элементларга чиқади:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // 3 элементида чиқади } else { console.log('---'); // 1, 2, 4, 5 элементларида чиқади } }

Демак, else қўшиш идеяси - ёмон идея, ишламайди. Шундай типдаги масалаларни ечиш учун (бундай масалалар жуда тез-тез учрайди) флаглар деб аталувчилардан фойдаланилади.

Юқорида айтиб ўтилганидек, флаг - бу шундай ўзгарувчики, икки қийматни қабул қилади: true ёки false.

Демак, келгила flag ўзгарувчисини қилайлик: агар у true га тенг бўлса, массивда 3 элементи бор, агар false бўлса, бундай элемент йўқ.

Дastлаб flag ўзгарувчисини false қийматига қўямиз - яъни 3 элементи массивда йўқ деб ҳисоблаймиз:

let arr = [1, 2, 3, 4, 5]; let flag = false; // массивада 3 элемenti йўқ деб ҳисоблаймиз

Сўнгра биз аввал қилганимиз каби иф билан циклни ишга тушамиз. Агар цикл массивда 3 элементи борлигини аникласа - flag ўзгарувчисини true қийматига қўямиз ва циклдан break ёрдамида чиқамиз:

let arr = [1, 2, 3, 4, 5]; let flag = false; // массивада 3 элементи йўқ деб ҳисоблаймиз for (let elem of arr) { if (elem == 3) { flag = true; // элемент бор - flag ўзгарувчисини қайта таниклаймиз break; // циклдан чиқамиз } }

Массивда 3 борми йўқми деган саволга жавоб биз фақат циклдан кейин бера оламиз. Ва бу жавоб бизда аллақачон бор: циклдан кейин flag ўзгарувчиси false да қолиши мумкин ёки true қийматига ўзгариши мумкин, агар цикл массивда 3 ни аниклаган бўлса:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // бу ерда flag ўзгарувчиси true ёки false га тенг

Энди циклдан кейин биз ифни қила оламиз, у flag ўзгарувчисига қарайди ва экранга '+++' ёки '---' ни чиқаради:

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('---'); }

Массив берилган:

let arr = ['a', 'b', 'c', 'd', 'e'];

Ушбу массивда 'c' элементи борлигини текширинг. Агар бор бўлса - '+++' ни чиқаринг, агар йўқ бўлса - '---' ни чиқаринг.

Соннинг содда ёки содда эмаслигини текширадиган код ёзинг. Содда сон фақат бирга ва ўзига бўлинади, ва бошқа сонларга бўлинмайди.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш