Visual Basic/יסודות השימוש בשפה/הצהרת תנאי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
תחילת כתיבה-מחדש של הפרק.
שורה 1:
{{בעבודה}}
== הצהרת תנאי ==
{{Visual Basic}}
עד כה, בכל התוכנות שכתבנו, שורות הקוד בוצעו בזו אחר זו באופן לינארי. בכל פעם שהופעל מאורע כלשהו (כגון לחיצה על כפתור), התוכנה הייתה נכנסת לחטיבת-הקוד של אותו המאורע, ומבצעת את כל השורות שבתוכה לפי הסדר; אך בכתיבת תוכנות יותר מתוחכמות, לרוב אין הדבר כך. התוכנה מבצעת חזרה על מספר שורות קוד, בוחרת באחת מכמה אפשרויות לפי תנאי מסויים, או קוראת לקוד הכתוב בכלל במקום אחר, מחוץ לחטיבה הנוכחית.
 
בפרק זה, נלמד על '''הצהרת התנאי''' (''If'' Statement). זוהי פקודה בסיסית למדי, אך משתמשים בה הרבה גם בכתיבת תוכנות ארוכות ומסובכות. פקודה זו גורמת לתוכנה לבחור האם לבצע חטיבה מסויימת של הקוד, על-פי בדיקה מסויימת שהתוכנה מבצעת. בוואריאציות היותר מתוחכמות שלה, הפקודה גורמת לתוכנה לבחור באחד ממספר נתיבי-פעולה שונים, על פי תוצאות של בדיקה, או אפילו מספר בדיקות. כל זאת נלמד בפרק זה.
=== מהו תנאי? ===
תנאי משמש אותנו להגיד לתוכנה לעשות מה שאנחנו אומרים לה רק אם - התנאי מתקיים.
זאת אומרת, התוכנה בעצם שואלת את השאלה האם. לדוגמא:
:if text1.text = "password" then
:msgbox "You may enter."
:end if
 
== הקדמה - מבני בקרה ==
זוהי דוגמא לתנאי.
התוכנה בודקת האם הטקסט שנמצא בתיבת הטקסט בשם "text1" הוא "password", אם כן, היא מפעילה הודעה שבה כתוב: "You may enter"
 
אז זהו תחביר התנאי:
:if x then
:y
:end if
 
מה שצריך לשנות הוא X ו-Y.
X הוא התנאי עצמו התנאי יכול להחזיר TRUE או FALSE, ז"א 'אמת' או 'שקר'.
Y אלה הפקודות אשר תתבצענה רק במידה וX הוא 'אמת', רק במידה והתנאי מתקיים.
כדי לנסח את X, התנאי, צריך להכיר את ה"אופרטורים". האופרטורים שבהם משתמשים לבדיקת תנאי הם:
=
>
<
>=
<=
<>
 
בדיוק כמו במתמטיקה, רק ש - >< זה אומר 'שונה'(לא שווה).
 
ניתן גם להגיד לתוכנה שלנו לבצע פקודות כאשר התנאי הוא 'שקר'. למשל:
:if text1.text = "password" then
:msgbox "You have entered the right password."
:else
:msgbox "This is not the right password..."
:end if
 
פה השתמשנו בפקודה ELSE כדי להגיד לתוכנה מה לעשות כאשר התנאי הוא 'שקר'.
באותה מידה אפשר לכתוב את התנאי בצורה הפוכה:
:if text1.text >< "password" then
:msgbox "This is not the right password..."
:else
:msgbox "You have entered the right password."
:end if
 
נסו את הקודים במהדר(קומפיילר) שלכם, הלא הוא visual basic 6.0.