JavaScript-da baýdaklar bilen işlemek

Häzir biz baýdaklar bilen işlemegi öwreneris. Baýdak - bu diňe iki sany bahany kabul edip bilýän ýörite üýtgeýji: true ýa-da false. Baýdaklar bilen bir zatlaryň ýoklugyny barlap görýän meseleleri çözüp bolýar: mysal üçin, san toparynda kesgitlenen baha bilen element ýokdugyny barlap bolýar. Geliň başlalyň.

Geliň şu meselemi çözeliň: sanlar bilen san topary berlen, onuň içinde 3 bahaly element bardygyny ýa-da ýokdugyny barlaň. Eger bar bolsa - '+++' çap ediň, eger ýok bolsa - '---' çap ediň.

Ilki bilen '+++' çap etmäge synanyşalyň. Bunun üçin san toparymyzyň ähli elementlerini aýlanyp gezeris we if bilen sorar - häzirki element 3 bahasyna deňmi ýa-da ýokmy. Eger deň bolsa - çap ederis '+++':

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

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

Ýöne çözgüdimiz gaty gowy däl: sebäbi eger san toparynda bir sany 3 baha däl-de, birnäçe san bolsa, onda '+++' birnäçe gezek çap ediler. Geliň san toparymyzy düzeliň (onuň içine 3 bahaly iki element goýalyň) we muny göz ýetireliň:

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

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // birnäçe gezek çap eder
  }
}

Meseläni düzeliň: element eýýäm tapylan bolsa, break bilen aýlawy tamamlalyň:

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

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++');
    break;  // aýlawy tamamlaýarys
  }
}

Indi edeliň şeýle, eger san toparynda umuman 3 bahaly element ýok bolsa, '---' çap edilsin. Köp tarap ýaýran ýalňyşlyk - if-a else goşmakdyr - bu ýagdaýda '---' 3 bolmadyk ähli elementler üçin çap ediler:

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

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // 3-nji elementde çap eder
  } else {
    console.log('---'); // 1, 2, 4, 5-nji elementlerde çap eder
  }
}

Şeýlelikde, else goşmak ýaramaz pikirdir, işlemeýär. Şuňa meňzeş meseleleri çözmek üçin (ýaly meseleler ýetirlik derejede duş gelýär) şeýlelikde baýdaklar diýilýän zatlary ulanyýarlar.

Ýokarda aýdylan ýaly, baýdak - şeýle bir üýtgeýjidir, iki sany bahany kabul edip bilýär: true ýa-da false.

Şeýlelikde, geliň flag üýtgeýjisini edeliň şeýle bir baha bilen: eger ol true deň bolsa, san toparynda 3 elementi bar, eger false bolsa, onda şeýle element ýok.

Başlangyçda flag üýtgeýjisini false bahasyna goýalyň - ýagny san toparynda 3 elementi ýokdyr diýip hasaplarys:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // san toparynda 3 elementi ýokdyr diýip hasaplaýarys

Soňra aýlawy if bilen ýola goýarys, ýöne biz muny öň etdik ýaly. Eger aýlaw san toparynda 3 elementi bar boldugyny anyklasa - onda flag üýtgeýjisini true bahasyna çalşyryp aýlawdan break bilen çykarys:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // san toparynda 3 elementi ýokdyr diýip hasaplaýarys

for (let elem of arr) {
  if (elem == 3) {
    flag = true; // element bar - flag üýtgeýjisini çalşyrýarys
    break; // aýlawdan çykýarys
  }
}

San toparynda 3 bardygyny ýa-da ýokdugyny baradaky soraga jawap bermegi diňe aýlawdan soň berip bileris. Bu soraga bizde eýýäm bar: aýlawdan soň flag üýtgeýjisi false galyp biler ýa-da öz bahasyny true üýtgedip biler, eger aýlaw san toparynda 3 bardygyny anyklasa:

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

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

// bu ýerde flag üýtgeýjisi true ýa-da false deňdir

Indi aýlawdan soň if edip bileris, ol flag üýtgeýjisine seredip ekrana '+++' ýa-da '---' çap eder:

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

San topary berlen:

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

Bu san toparynda 'c' elementi bar boldugyny barlaň. Eger bar bolsa - '+++' çap ediň, eger ýok bolsa - '---' çap ediň.

Задание 2

Sanyň ýönekeý sanydygyny ýa-da däldigini barlaýan kody ýazyň. Ýönekeý san diňe birine we özüne bölünýär, beýleki sanlara bölünmeýär.