1. מה זה תנאים?
תנאים מאפשרים לנו לבצע בדיקות לוגיות בתוכנית, ולהגיב בהתאם לתוצאה של הבדיקה. השימוש הנפוץ ביותר בתנאים הוא באמצעות המשפטים if
, else if
, ו-else
, שבהם ניתן לבדוק אם תנאי מסוים מתקיים או לא, ולבצע פעולה בהתאם לתוצאה.
ב-JavaScript, התנאים מאפשרים לך לשלוט בזרימת הקוד על ידי ביצוע פעולות שונות במצבים שונים.
2. מבנה בסיסי של if
ו-else
התחביר הבסיסי של תנאי if
נראה כך:
- אם התנאי ב-
if
הואtrue
(נכון), הקוד שבגוף ה-if
יבוצע. - אם התנאי הוא
false
(לא נכון), הקוד ידלג הלאה (או ל-else
אם יש).
התחביר:
if (תנאי) {
// קוד שיבוצע אם התנאי נכון
} else {
// קוד שיבוצע אם התנאי לא נכון
}
דוגמה:
let age = 18;
if (age >= 18) {
console.log("You are an adult.");
} else {
console.log("You are a minor.");
}
הסבר:
- אם הערך של
age
הוא 18 ומעלה, הפלט יהיה "You are an adult". - אם
age
קטן מ-18, הפלט יהיה "You are a minor".
3. שימוש ב-else if
לבדיקת תנאים נוספים
לפעמים יש יותר מתנאי אחד לבדוק, ואז משתמשים ב-else if
. ניתן לשלב כמה משפטי else if
כדי לבדוק מספר תנאים שונים.
דוגמה:
let grade = 85;
if (grade >= 90) {
console.log("Excellent");
} else if (grade >= 80) {
console.log("Very Good");
} else if (grade >= 70) {
console.log("Good");
} else {
console.log("Needs Improvement");
}
הסבר:
- אם
grade
גדול מ-90, תופיע ההודעה "Excellent". - אם הוא בין 80 ל-90, תופיע "Very Good".
- אם הוא בין 70 ל-80, תופיע "Good".
- אחרת, תופיע ההודעה "Needs Improvement".
4. תנאים מקוננים (Nested Conditions)
אפשר להכניס תנאים בתוך תנאים אחרים, וזה נקרא תנאים מקוננים. זה מאפשר לבדוק תנאי נוסף אם התנאי הראשון מתקיים.
דוגמה:
let age = 20;
let hasLicense = true;
if (age >= 18) {
if (hasLicense) {
console.log("You can drive.");
} else {
console.log("You need a license to drive.");
}
} else {
console.log("You are too young to drive.");
}
הסבר:
- אם הגיל 18 ומעלה, נכנסים לתנאי פנימי שבודק אם יש רישיון נהיגה.
- אם יש רישיון, תופיע ההודעה "You can drive".
- אם אין רישיון, תופיע ההודעה "You need a license to drive".
- אם הגיל קטן מ-18, תופיע ההודעה "You are too young to drive".
5. תנאי switch
במקום לבדוק הרבה תנאים עם if
ו-else if
, ניתן להשתמש ב-switch
. זה שימושי במיוחד כשיש הרבה תנאים לבדוק על משתנה אחד, כמו תפריטים או מצבים שונים.
התחביר:
switch (ביטוי) {
case ערך1:
// קוד שיבוצע אם הביטוי שווה לערך1
break;
case ערך2:
// קוד שיבוצע אם הביטוי שווה לערך2
break;
default:
// קוד שיבוצע אם אף אחד מהתנאים לא מתקיים
}
דוגמה:
let day = 3;
switch (day) {
case 1:
console.log("Sunday");
break;
case 2:
console.log("Monday");
break;
case 3:
console.log("Tuesday");
break;
case 4:
console.log("Wednesday");
break;
case 5:
console.log("Thursday");
break;
case 6:
console.log("Friday");
break;
case 7:
console.log("Saturday");
break;
default:
console.log("Invalid day");
}
הסבר:
- במקרה שהערך של
day
הוא 3, תופיע ההודעה "Tuesday". - אם הערך של
day
לא תואם לאף אחד מהמקרים, תופיע ההודעה מהחלק שלdefault
(במקרה הזה, "Invalid day").
6. אופרטור תנאי (Ternary Operator)
אופרטור תנאי, הידוע גם בשם ternary operator, הוא דרך מקוצרת לכתוב תנאי if
. הוא בנוי משלושה חלקים:
- תנאי, שאלה (?), ופעולות: אם התנאי מתקיים (
true
), יבוצע קטע קוד אחד, ואם לא, יבוצע הקטע השני.
התחביר:
תנאי ? פעולה אם נכון : פעולה אם לא נכון;
דוגמה:
let age = 17;
let message = (age >= 18) ? "You are an adult" : "You are a minor";
console.log(message); // מציג "You are a minor"
הסבר:
- אם
age
גדול מ-18,message
יהיה "You are an adult". - אחרת,
message
יהיה "You are a minor".
7. תנאי לוגי עם מספר תנאים
אפשר לשלב מספר תנאים בתוך משפט if
באמצעות אופרטורים לוגיים כמו &&
(וגם) ו-||
(או).
דוגמה:
let age = 25;
let isMember = true;
if (age >= 18 && isMember) {
console.log("Welcome to the members' area.");
} else {
console.log("Sorry, you cannot enter.");
}
הסבר:
- התנאי יתקיים רק אם שני התנאים הם
true
: הגיל צריך להיות 18 ומעלה, וגם צריך להיות חבר מועדון (isMember
). - אם אחד התנאים לא מתקיים, תופיע ההודעה "Sorry, you cannot enter".
דוגמה מלאה: תנאים עם if
, else if
, else
, ו-switch
נבנה דוגמה שמדמה תפריט מבצעים ומגיב בהתאם לבחירה של המשתמש.
let choice = 2;
if (choice === 1) {
console.log("You selected Pizza.");
} else if (choice === 2) {
console.log("You selected Burger.");
} else if (choice === 3) {
console.log("You selected Salad.");
} else {
console.log("Invalid choice.");
}
// אותו דבר בעזרת switch
switch (choice) {
case 1:
console.log("You selected Pizza.");
break;
case 2:
console.log("You selected Burger.");
break;
case 3:
console.log("You selected Salad.");
break;
default:
console.log("Invalid choice.");
}
הסבר:
- אם
choice
שווה ל-1, תוצג הודעה על בחירת פיצה. - אם
choice
שווה ל-2, תוצג הודעה על בחירת המבורגר. - אם לא קיים ערך מתאים, תוצג הודעה על בחירה לא חוקית.
סיכום
בפרק זה למדנו על:
- השימוש ב-
if
,else if
, ו-else
לבדיקת תנאים ותגובה בהתאם. - תנאים מקוננים (Nested Conditions) לבדיקות מורכבות יותר.
- שימוש ב-
switch
לבדיקת מספר אפשרויות שונות על אותו משתנה. - שימוש באופרטור התנאי (Ternary Operator) לכתיבת תנאים בצורה מקוצרת.
- שילוב מספר תנאים עם אופרטורים לוגיים (
&&
,||
).
בפרק הבא נצלול לתוך Loops (לולאות) ונלמד כיצד לחזור על פעולות בצורה יעילה עם לולאות כמו for
, while
, ועוד.