וובמאסטר - תיכנות ובניית אתרים

מדריך JS - משפטי תנאי

אורי בן אהרון/‏ 4 יולי, 2003
F+
F-
כשתכתוב\תכתבי קוד, תתקל פעמים רבות במצב שבו תרצה לעשות משהו במקרה ש-X התרחש, ולעשות משהו אחר במקרה ש-X לא התרחש. בפרק זה נלמד על תנאים שבעזרתם אפשר לעשות את זה.



תנאים פשוטים

התחביר של תנאים ב-JS נראה כך:

<script type="text/javascript">
    if (<condition>)
    {
        // statements
    }
</script> 
הקוד מכיל את המילה if שמציינת תנאי, אחריה, בסוגריים, תנאי כלשהו, שאם הוא מתקיים, הקוד בסוגריים המסולסלים מתבצע. דוגמא לקוד פשוט כזה היא:

<script type="text/javascript">
    x = 6;
    y = 4;
    if (x+y == 10)
    {
        document.write("The sum of x and y is 10")
    }
</script> 
בקוד זה, אנו בודקים אם סכום המשתנים x ו- y שווה ל-10, אם כן, אנו מדפיסים The sum of x and y is 10. נגיד שעכשיו נרצה להגיד, "אם הסכום של x ו-y שווה ל-10, תדפיס The sum of x and y is 10. אחרת, תדפיס The sum isn't 10", איך נעשה את זה? כך:

<script type="text/javascript">
    x = 6;
    y = 4;
    if (x+y == 10)
    {
        document.write("The sum of x and y is 10");
    }
    else
    {
        document.write("The sum isn't 10");
    }
</script> 
שימו לב לחלק שהתווסף לקוד, הוא מתחיל במילה else ואחריה קוד בתוך סוגריים מסולסלים. אם התנאי לא נכון, הקוד יתבצע, אפשר היה לקבל אותה תוצאה כך:

<script type="text/javascript">
    x = 6;
    y = 4;
    if (x+y == 10)
    {
        document.write("The sum of x and y is 10");
    }
    if (x+y != 10) 
    {
        document.write("The sum isn't 10");
    }
</script> 
אך זה הרבה יותר מסובך, ולא יעיל.



תנאים עם סט של אפשרויות

לתנאים כאלה קוראים switch, משתמשים בהם כאשר רוצים לבדוק יותר מאפשרות אחת, הנה התחביר:

<script type="text/javascript">
    switch (<expression>)
    {
        case <label_1>:
            // statements
            break;

        case <label_2>:
            // statements
            break;

        default:
            // statements
    }
</script> 
הקוד הזה מורכב מהמילה switch שמכריזה על אותו תנאי מרובה אופציות, אחריה מגיע ביטוי כלשהו, שיכול להיות משתנה או כל ערך אחר. בתוך הסוגריים המסולסלים נמצאות, במקרה שלנו, שלוש אופציות. למעשה, התנאי שנבדק כאן הוא:
if (expression == label_1)
אחרי התנאי באות הפקודות (statements), ואחריהן הפקודה break, הפקודה הזו מונעת מהסקריפט להמשיך ל"קייס" הבא אוטומטית. (case היא המילה שבעזרתה מוסיפים עוד אופציות). אחרי שתי האופציות שהגדרנו, נמצאת המילה default, חלק זה של הקוד יתבצע אם כל ה"קייסים" האחרים לא נכונים. ניתן להשתמש גם ב-3 "קייסים", 4, וכן הלאה... הנה דוגמא לשימוש בתנאי switch עם הרבה אופציות.

<script type="text/javascript">
    name = prompt("What's your name?")
    switch (name)
    {
        case "Ori":
            document.write("Hello there Ori")
            break;

        case "Daniel":
            document.write("Hi, Daniel.")
            break;

        case "Noa":
            document.write("Noa!")
            break;

        case "Tal":
            document.write("Hey, Tal!")
            break;

        default:
            document.write(name)
    }
</script> 
בקוד הנ"ל, ביקשנו מהמשתמש להזין את שמו (באמצעות הפקודה prompt שמקפיצה חלון ובו מקום להזנת ערך (את\ה מוזמן\ת לנסות)), את הערך שקיבלנו הכנסנו למשתנה name. אח"כ השוונו אותו לכמה שמות, במקרה של התאמה הצגנו הודעה ובמקרה של אי התאמה, הצגנו את השם. אפשר להשתמש ב-switch גם כדי להשוות מספרים וערכים אחרים.




תנאים מקוצרים

תנאים מקוצרים הם תנאים המחזירים ערך אם התנאי נכון, ומחזירים ערך אחר אם הוא איננו נכון. התחביר:

<script type="text/javascript">
 (<condition>)?<statment1>:<statment2>
</script> 
אם התנאי מתקיים, יוחזר value1, אם לא, יוחזר value2. דוגמא:

<script type="text/javascript">
gotDog = (visitorPet == "dog")?"Yes":"No"
</script> 
בתנאי הזה, אם חיית המחמד שבמשתנה visitorPet היא dog, המשתנה gotDog יכיל את הערך Yes, אחרת הוא יכיל את הערך No.
תגיות: JS‏  /  Javascript‏  /  סקריפט‏  /  תנאי‏  /  condition‏  /  if‏  /  switch‏  

תגובות בפייסבוק

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות