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 болса, онда мұндай элемент жоқ.
Бастапқыда flag айнымалысын
false мәніне қояйық - яғни массивте
3 элементі жоқ деп есептейміз:
let arr = [1, 2, 3, 4, 5];
let flag = false; // массивте 3 элементі жоқ деп есептейміз
Содан кейін біз бұрын жасағандай циклді іске қосамыз.
Егер цикл массивте 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' элементі бар екенін тексеріңіз.
Егер бар болса - '+++' шығарыңыз,
ал егер жоқ болса - '---' шығарыңыз.
Санды жай сан ба, жоқ па екенін тексеретін код жазыңыз. Жай сан тек бірге және өзіне ғана бөлінеді, және басқа сандарға бөлінбейді.