תנאי
התנאי הבא אחרי המילה if, הוא תנאי חד-משמעי , נכון או לא-נכון.
בתנאי קיימים שלושה מרכיבים:
ביטוי מצד שמאל לסימן היחס (ביטוי 1).
ביטוי מצד ימין לסימן היחס (ביטוי 2).
היחס (בין שני הביטויים).
תנאי מורכב מ- (ביטוי 2) סימן יחס (ביטוי 1) |
ביטויים יכולים להיות משתנים, מספרים, ביטויים אריתמטיים כגון A+B וכו'.
כל סימני יחס שיכולים להרכיב את התנאי:
|
קיימים בסך הכול שש אפשרויות ליחס בין ביטוי-1 לביטוי-2 .
היחס =< האומר גדול או שווה.
כלומר התנאי מתקיים אם:
ביטוי-1 גדול מביטוי-2
או
ביטוי-1 שווה לביטוי-2
כלומר יש שתי אפשרויות לקיום התנאי (וביצוע ההוראה אחרי ה-then).
עבור היחס שווה, בדוגמא שבטבלה, התנאי לעולם לא יתקיים (4 לעולם לא יהיה שווה ל-5) ולכן ההוראה אחרי ה-then לא תבוצע לעולם.
בזמן בדיקת היחס בתוכנית, מחושבת תוצאת ביטוי-1 ותוצאת ביטוי-2 (מסובכים ומורכבים ככל שיהיו) ואז נבדק היחס בין המספר שהוא תוצאת החישוב שלביטוי-1 וביטוי-2. אם אמנם היחס נכון, תבוצע ההוראה אחרי ה-then ואם אינו נכון תבוצע ההוראה אחרי ה-else.
לא תמיד זקוקים ל-else בהוראת if.
כלומר, מה שנדרש מהפקודה הוא:
אם התנאי מתקיים אזי יש לבצע את ההוראה אחרי ה-then,
אחרת אין לבצע דבר ולעבור לביצוע ההוראה הבאה בתוכנית.
כלומר מבנה ההוראה יהיה
;הוראה then תנאי if |
נקודה-פסיק היא שמסיימת את ההוראה if.
דוגמא:
כתוב תוכנית הקולטת שני מספרים. אם רק אחד מהמספרים חיובי, הדפס את סכומם והפרשם. בכל מקרה אחר, התוכנית לא תחשב ולא תדפיס דבר.
פתרון:
במקרה זה לא נכתוב את כל התוכנית, אנחנו כבר מכירים את שלביה האחרים, לכן נכתוב רק את התת-תוכנית המטפלת בבדיקת הנושא המעניין אותנו.
נציין מספר נקודות הקשורות לבלוקים הפנימיים:
1. בלוק פנימי אינו יכול לחתוך בלוק חיצוני.
כלומר לא יכול להיות המיבנה:
2. לכל התחלת בלוק פנימי (begin) חייב להיות סיום (end). ניתן להתייחס לבלוקים הפנימיים כסוגריים בפעולות חשבון.
רצוי להזיז את ההוראות בבלוק קצת יותר ימינה (כמו בדוגמא) כדי להקל על הזיהוי בפקודות השייכות לבלוק זה. הדבר נועד לנוחות המתכנת.
שימו לב, בלוקים פנימיים אינם שמורים להוראות if בלבד, אפשרי גם המבנה הבא:
begin begin begin write(' בלוק בתוך בלוק בתוך בלוק'); end; end; end;
בבלוק פנימי אפשר לרשום הוראה אחת למרות שאין צורך בכך.
if A>=B then begin ;('רק הוראה אחת ') write ;end |
ההוראות בתוך הבלוק הפנימי גם הן זוכות לנקודה-פסיק בסופן.
ובכן, מבנה נוסף אפשרי של הוראת if:
then תנאי if begin ;הוראה · · · ;הוראה ;end |
כמובן שכאשר כותבים תוכנית, לא כותבים שלוש נקודות.
כותבים את כותרת-התוכנית, תת-התוכנית הרצויה ואת התוכנית הראשית, שתכיל רק הוראה אחת והיא שם תת-התוכנית אותה מפתחים ברגע זה.