JavaScript'те флагдар менен иштоо
Азыр биз флагдар менен иштоону үйрөнөбүз.
Флаг - бул эки гана маанини кабыл ала турган
атайын өзгөрмө: true
жана false. Флагдарды колдонуп,
бир нерсенин жок экендигин текшерүүчү
маселелерди чыгара аласыз:
мисалы, массивде белгилүү бир маанидеги
элемент жок экендигин текшерсе болот. Келгиле,
баштайлы.
Келгиле, төмөнкү маселени чыгаралы: сандардан турган массив берилген,
анда 3 маанисиндеги элемент барбы же жокпу текшерүү керек.
Эгер бар болсо - '+++' чыгарабыз, эгер жок болсо -
'---' чыгарабыз.
Башында келгиле, '+++' чыгарабыз.
Бул үчүн биздин массивибиздин бардык элементтерин айланып өтөбүз
жана if менен сурабыз - учурдагы элемент
3 маанисине барабарбы.
Эгер барабар болсо - '+++' чыгарабыз:
let arr = [1, 2, 3, 4, 5];
for (let elem of arr) {
if (elem == 3) {
console.log('+++');
}
}
Бирок биздин чечимибиз өтө жакшы эмес: себеби эгер
массивде бир эле 3 мааниси эмес,
бир нече 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 кошуу
биздин if'ке - бул учурда '---'
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 болсо, анда мындай элемент жок.
Башында flag өзгөрмөсүн
false маанисине коёлу - б.а. ойлойлу,
3 элементи массивде жок деп:
let arr = [1, 2, 3, 4, 5];
let flag = false; // массивибизде 3 элементи жок деп эсептейбиз
Андан кийин циклди if менен биз мурун кылгандай
иштетебиз. Эгер цикл массивде 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
Эми циклден кийин биз if жаза алабыз, ал
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' элементи барбы же жокпу текшериңиз.
Эгер бар болсо - '+++' чыгарыңыз,
эгер жок болсо - '---' чыгарыңыз.
Санды жөнөкөй же жөнөкөй эмес экендигин текшерүүчү кодду жазыңыз. Жөнөкөй сан бир гана бирге жана өзүнө бөлүнөт, башка сандарга бөлүнбөйт.