პროგრამირების საფუძვლები › დამწყები › პირობები
switch: ბევრი ვარიანტი
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- როგორ ააწყო არჩევანი
switch,caseდაdefaultსიტყვებით - რას აკეთებს
breakდა რა ხდება მის გარეშე - როდის ჯობს
switchდა როდისif / else if
ერთი ცვლადი, ბევრი ვარიანტი
წარმოიდგინე, რომ ცვლადში კვირის დღის ნომერი ინახება და მისი სახელი უნდა დაბეჭდო. else if ჯაჭვით ასე გამოვა:
let day = 3;
if (day === 1) {
console.log("ორშაბათი");
} else if (day === 2) {
console.log("სამშაბათი");
} else if (day === 3) {
console.log("ოთხშაბათი");
}ყოველ ხაზში მეორდება day ===. როცა ერთსა და იმავე მნიშვნელობას ბევრ ვარიანტს ადარებ, უფრო მოწესრიგებული ჩანაწერი არსებობს, switch:
let day = 3;
switch (day) {
case 1:
console.log("ორშაბათი");
break;
case 2:
console.log("სამშაბათი");
break;
case 3:
console.log("ოთხშაბათი");
break;
default:
console.log("ასეთი დღე არ ვიცი");
}switch (day)იღებს შესამოწმებელ მნიშვნელობას.- ყოველი
caseერთი ვარიანტია. კომპიუტერი ეძებს პირველcase-ს, რომელიცday-ს მკაცრად (===-ით) უდრის. - ნაპოვნი
case-დან იწყებს კოდის შესრულებას. breakამბობს: „მორჩა, გამოდიswitch-იდან“.defaultსრულდება, როცა არცერთიcaseარ დაემთხვა, ისევე როგორც ბოლოelse.
რატომ გვჭირდება break
switch-ს ერთი თავისებურება აქვს: ნაპოვნი case-ის შემდეგ კომპიუტერი შემდეგ case-ებზეც „ჩავარდება“ და მათ კოდსაც შეასრულებს, სანამ break-ს არ შეხვდება. ამას ჩავარდნა (fall-through) ჰქვია:
let level = 1;
switch (level) {
case 1:
console.log("ადვილი");
case 2:
console.log("საშუალო");
break;
case 3:
console.log("რთული");
}ეს დაბეჭდავს „ადვილი“-ს და „საშუალო“-ს: case 1-ს break არ აქვს, ამიტომ კომპიუტერმა case 2-ის კოდიც შეასრულა. თითქმის ყოველთვის ეს შეცდომაა, ამიტომ ყოველი case break-ით დაასრულე.
ჩავარდნა ზოგჯერ განზრახაც გამოიყენება: როცა რამდენიმე ვარიანტს ერთი და იგივე პასუხი აქვს, case-ები ერთმანეთის ქვეშ ჩამოწერე:
let day = 6;
switch (day) {
case 6:
case 7:
console.log("დასვენების დღეა");
break;
default:
console.log("სამუშაო დღეა");
}switch თუ if
switch კარგია, როცა ერთ მნიშვნელობას კონკრეტულ ვარიანტებს ადარებ: დღის ნომერს, მენიუს პუნქტს, ფერის სახელს. როცა საზღვრებს ამოწმებ, მაგალითად „90-ზე მეტი“ ან „18-დან 65-მდე“, if / else if გამოიყენე: case-ში შედარება ზუსტ ტოლობაზე მუშაობს.
სცადე თავად
გაუშვი, მერე light-ში სხვა ფერები ჩაწერე, მათ შორის ისეთიც, რომელიც სიაში არ არის.
ხშირი შეცდომები
- დავიწყებული
break. კოდი შემდეგcase-ებშიც გაგრძელდება. ყოველიcasebreak-ით დაასრულე, თუ ჩავარდნა განზრახ არ გინდა. - დიაპაზონი
case-ში.case score > 90:ისე არ მუშაობს, როგორც ელი, რადგანcaseswitch-ის მნიშვნელობას ზუსტად ადარებს. საზღვრებისთვისifგამოიყენე. - ტიპების არევა.
switch ("1")არ დაემთხვევაcase 1-ს, რადგან ტექსტი და რიცხვი მკაცრად არ არის ტოლი.
სავარჯიშო
ცვლადში grade ინახება შეფასება ასოთი: "A", "B", "C" ან სხვა. switch-ით დაბეჭდე: A → ფრიადი, B → კარგი, C → საშუალო, სხვა ნებისმიერი → უცნობი შეფასება. სცადე grade = "B".
💡 მინიშნება
case "A": ასოს ბრჭყალებში ჩაწერე და არ დაგავიწყდეს break. უცნობი შეფასება default-ია.
✅ ამოხსნის ნახვა
let grade = "B";
switch (grade) {
case "A":
console.log("ფრიადი");
break;
case "B":
console.log("კარგი");
break;
case "C":
console.log("საშუალო");
break;
default:
console.log("უცნობი შეფასება");
}მინი-ქვიზი
1რას დაბეჭდავს? let x = 1; switch (x) { case 1: console.log("ერთი"); case 2: console.log("ორი"); break; }
case 1-ს break არ აქვს, ამიტომ კოდი case 2-შიც ჩავარდა.
2როდის სრულდება default?
default „ყველა დანარჩენი შემთხვევაა“, ისევე როგორც else.
3რომელი ამოცანისთვის ჯობს if / else if?
case ზუსტ ტოლობას ამოწმებს. საზღვრებისთვის if სჯობს.
შეჯამება
switchერთ მნიშვნელობას ბევრcase-ს ადარებს მკაცრი ტოლობით.breakswitch-იდან გამოდის. მის გარეშე კოდი შემდეგcase-ში ჩავარდება.defaultსრულდება, როცა არცერთიcaseარ დაემთხვა.- ზუსტი ვარიანტებისთვის
switch, საზღვრებისთვისif.