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
'+++':
let 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ň:
let 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ň:
let 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:
let 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:
let 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:
let 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:
let 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:
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('---');
}
San topary berlen:
let arr = ['a', 'b', 'c', 'd', 'e'];
Bu san toparynda 'c' elementi bar boldugyny
barlaň. Eger bar bolsa - '+++' çap ediň,
eger ýok bolsa - '---' çap ediň.
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.