პროგრამირების საფუძვლები › დამწყები › პირობები
else და else if
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- როგორ დაწერო „თუ… თუ არა და…“
else-ით - როგორ აირჩიო ბევრ ვარიანტს შორის
else if-ით - რატომ სრულდება მხოლოდ ერთი ბლოკი და რატომ არის რიგი მნიშვნელოვანი
ორი გზა: if და else
if ბლოკს ასრულებს, როცა პირობა true-ა. ხშირად კი იმის თქმაც გინდა, რა მოხდეს წინააღმდეგ შემთხვევაში. ამისთვის არსებობს else, „თუ არა და“:
let age = 10;
if (age >= 18) {
console.log("შეგიძლია ხმა მისცე არჩევნებზე.");
} else {
console.log("ხმის მიცემამდე " + (18 - age) + " წელი დაგრჩა.");
}ახლა პროგრამა გზაგასაყარზეა: ორი ბლოკიდან ზუსტად ერთი შესრულდება. პირობა true-ა, სრულდება პირველი. false-ა, სრულდება მეორე. ორივე ერთად ან არცერთი ვერასოდეს შესრულდება.
else-ს საკუთარი პირობა არ აქვს: ის უბრალოდ „ყველა დანარჩენი შემთხვევაა“.
ბევრი ვარიანტი: else if
ზოგჯერ ორი გზა საკმარისი არ არის. ქულით შეფასება, მაგალითად, ოთხ ვარიანტს შორის ირჩევს. ასეთ დროს if-ებს else if-ით ვაერთებთ:
let score = 82;
if (score >= 90) {
console.log("შესანიშნავი");
} else if (score >= 75) {
console.log("კარგი");
} else if (score >= 50) {
console.log("დამაკმაყოფილებელი");
} else {
console.log("სცადე თავიდან");
}კომპიუტერი პირობებს ზემოდან ქვემოთ ამოწმებს:
82 >= 90? არა, შემდეგზე გადადის.82 >= 75? კი! ბეჭდავს „კარგი“-ს.- დანარჩენ პირობებს აღარ ამოწმებს და მთელი ჯაჭვიდან გამოდის.
ჯაჭვში პირველი true პირობა იმარჯვებს და მხოლოდ მისი ბლოკი სრულდება. ბოლო else მაშინ სრულდება, როცა არცერთი პირობა არ გამართლდა. ის არ არის სავალდებულო: თუ „დანარჩენ შემთხვევაში“ არაფერი უნდა მოხდეს, შეგიძლია გამოტოვო.
რიგს აქვს მნიშვნელობა
რადგან პირველი სწორი პირობა იმარჯვებს, პირობები სწორი რიგით უნდა დაალაგო. ნახე, რა მოხდება, თუ ზემოთ მოყვანილ მაგალითში ჯაჭვს ყველაზე „რბილი“ პირობით დავიწყებთ:
let score = 95;
if (score >= 50) {
console.log("დამაკმაყოფილებელი");
} else if (score >= 90) {
console.log("შესანიშნავი");
}95 მეტია 50-ზე, ამიტომ იბეჭდება „დამაკმაყოფილებელი“ და „შესანიშნავამდე“ კომპიუტერი ვეღარ მიდის. წესი მარტივია: როცა საზღვრებს ამოწმებ, დაიწყე ყველაზე მკაცრით, ანუ ყველაზე დიდით, და თანდათან ჩადი.
სცადე თავად
გაუშვი და შეამოწმე ქულები 100, 75, 74, 50 და 10. ემთხვევა თუ არა თითოეული შენს მოლოდინს?
ხშირი შეცდომები
- პირობა
else-ზე.else (age < 18) { ... }შეცდომაა.else-ს პირობა არ აქვს. თუ პირობა გჭირდება, დაწერეelse if (...). - ცალკეული
if-ები ჯაჭვის ნაცვლად. სამი ცალკეifერთმანეთზე არ არის დამოკიდებული და შეიძლება სამივე შესრულდეს. როცა მხოლოდ ერთი ვარიანტი გინდა,else ifგამოიყენე. - არასწორი რიგი. ფართო პირობა ჯაჭვის თავში ვიწროებს „ჩრდილავს“. საზღვრები დიდიდან პატარისკენ ამოწმე.
სავარჯიშო
მუზეუმის ბილეთის ფასი ასაკზეა დამოკიდებული: 6 წლამდე უფასოა, 18 წლამდე 2 ლარი ღირს, 65 წლიდან 1 ლარი, დანარჩენებისთვის 5 ლარი. age = 12-ისთვის დაბეჭდე ბილეთის ფასი: 2 ლარი, მერე სხვა ასაკებიც სცადე.
💡 მინიშნება
შექმენი ცვლადი price, ჯაჭვში მას მნიშვნელობა მიანიჭე და ბოლოს ერთხელ დაბეჭდე. 65 წლის შემოწმება ჩასვი 18-მდე შემოწმების შემდეგ ან მანამდე: ორივე იმუშავებს, რადგან ეს პირობები ერთმანეთს არ ფარავს.
✅ ამოხსნის ნახვა
let age = 12;
let price;
if (age < 6) {
price = 0;
} else if (age < 18) {
price = 2;
} else if (age >= 65) {
price = 1;
} else {
price = 5;
}
console.log("ბილეთის ფასი: " + price + " ლარი");მინი-ქვიზი
1ქულების მაგალითში score = 95. რა დაიბეჭდება?
პირველი პირობა უკვე true-ა. ჯაჭვში მხოლოდ ერთი ბლოკი სრულდება.
2if / else if / else ჯაჭვში მაქსიმუმ რამდენი ბლოკი შესრულდება?
პირველი true პირობის შემდეგ კომპიუტერი ჯაჭვიდან გამოდის.
3რომელი ჩანაწერია სწორი?
else-ს პირობა არ აქვს. პირობიანი ვარიანტი else if-ია, პირობით მრგვალ ფრჩხილებში.
შეჯამება
elseსრულდება, როცაif-ის პირობაfalse-ა. მას საკუთარი პირობა არ აქვს.else ifრამდენიმე ვარიანტს შორის ირჩევს. პირველიtrueპირობა იმარჯვებს.- ჯაჭვში ზუსტად ერთი ბლოკი სრულდება, ან არცერთი, თუ ბოლოში
elseარ არის. - საზღვრები ყველაზე მკაცრიდან დაიწყე.