Puna me flamuj në JavaScript

Tani do të mësojmë të punojmë me flamuj. Një flamur është një variabël e veçantë, e cila mund të marrë vetëm dy vlera: true dhe false. Me ndihmën e flamujve mund të zgjidhen probleme që kontrollojnë mungesën e diçkaje: për shembull, mund të kontrollohet nëse në një grup nuk ka asnjë element me një vlerë të caktuar. Le të fillojmë.

Le të zgjidhim problemin e mëposhtëm: jepet një grup me numra, duhet të kontrollohet nëse në të ka një element me vlerën 3 apo jo. Nëse ka - do të shfaqim '+++', nëse nuk ka - do të shfaqim '---'.

Për fillim le të përpiqemi të shfaqim '+++'. Për këtë do të përsërisim nëpër të gjithë elementët e grupit tonë dhe me një 'if' do të pyesim - a është i barabartë elementi aktual me vlerën 3. Nëse është i barabartë - do të shfaqim '+++':

javascriptlet arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++');
  }
}

Por zgjidhja jonë nuk është shumë e mirë: në fund të fundit, nëse në grup do të ketë jo një vlerë 3, por disa, atëherë '+++' do të shfaqet disa herë. Le të rregullojmë grupin tonë (le të bëjmë dy elementë me vlerën 3) dhe të bindemi për këtë:

javascriptlet arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // do të shfaqet disa herë
  }
}

Le të rregullojmë problemin: le ta përfundojmë ciklin me ndihmën e break, nëse elementi tashmë është gjetur:

javascriptlet arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++');
    break;  // përfundojmë ciklin
  }
}

Tani le të përpiqemi ta bëjmë në mënyrë që, nëse në grup nuk ka fare elementë me vlerën 3, të shfaqet '---'. Një keqkuptim i zakonshëm do të ishte të shtohej else te 'if'-i ynë - në këtë rast '---' do të shfaqej për të gjithë elementët që nuk janë 3:

javascriptlet arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // do të shfaqet te elementi 3
  } else {
    console.log('---'); // do të shfaqet te elementët 1, 2, 4, 5
  }
}

Pra, ideja për të shtuar else - është një ide e keqe, jopune. Për zgjidhjen e problemeve të këtij tipi (probleme të tilla hasen mjaft shpesh) përdoren të ashtuquajturat flamuj.

Siç u përmend më lart, një flamur është një variabël e tillë, e cila mund të marrë dy vlera: true ose false.

Pra, le të bëjmë variablin flag me këtë vlerë: nëse është e barabartë me true, atëherë në grup ka një element 3, por nëse false, atëherë nuk ka një element të tillë.

Fillimisht le ta vendosim variablin flag në vlerën false - domethënë do të konsiderojmë, se elementi 3 nuk gjendet në grup:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // konsiderojmë se elementi 3 nuk gjendet në grup

Pastaj do të nisim një cikël me 'if' ashtu siç e bënim më parë. Nëse cikli zbulon se në grup ka një element 3 - atëherë do ta vendosim variablin flag në vlerën true dhe do të dalim nga cikli me ndihmën e break:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // konsiderojmë se elementi 3 nuk gjendet në grup

for (let elem of arr) {
  if (elem == 3) {
    flag = true; // elementi gjendet - ridefinjojmë variablin flag
    break; // dalim nga cikli
  }
}

Përgjigjen në pyetjen, nëse në grup ka 3 apo jo, ne mund ta japim vetëm pas ciklit. Dhe kjo përgjigje tashmë e kemi: pas ciklit variabli flag mund të ketë mbetur false ose mund të ketë ndryshuar vlerën e saj në true, nëse cikli zbuloi në grup 3:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false;

for (let elem of arr) {
  if (elem == 3) {
    flag = true;
    break;
  }
}

// këtu variabli flag është ose true, ose false

Tani pas ciklit ne mund të bëjmë një 'if', i cili do të shohë te variabli flag dhe do të shfaqë në ekran '+++' ose '---':

javascriptlet 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('---');
}
Задание 1

Jepet një grup:

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

Kontrolloni nëse në këtë grup ka elementin 'c'. Nëse ka - shfaqni '+++', por nëse nuk ka - shfaqni '---'.

Задание 2

Shkruani kodin, i cili do të kontrollojë nëse një numër është i thjeshtë apo jo. Një numër i thjeshtë pjestohet vetëm me një dhe me vetveten, dhe nuk pjestohet me numra të tjerë.