פירוט שפת תכנות - if (התניה) ו- ==, =!, >, < (פעולות השוואה)

פורום זה מכיל תרגום לעברית של מדריכים, דוגמאות קוד, פירוט שפת תכנות לכרטיסי Arduino וחומרים לימודיים אחרים מהאתר arduino.cc

פירוט שפת תכנות - if (התניה) ו- ==, =!, >, < (פעולות השוואה)

הודעהעל ידי Alex » ו' ספטמבר 12, 2014 8:58 pm

פקודת if, בשיתוף עם פעולות השוואה, בודקות האם תנאי כלשהו מתקיים, כמו למשל האם קלט כלשהו עבר רף מסוים. משתמשים ב-if בצורה הבאה:
קוד: בחר הכל
if (someVariable > 50)
{
  // do something here
}


התוכנית בודקת האם ערך המשתנה someVariable גדול יותר מ-50. אם כן, אז תתבצע פעולה כלשהי. במילים אחרות, אם התנאי בסוגריים העגולים מתקיים, אז חלק של הקוד הנמצא בתוך הסוגריים המסולסלים מתבצע. אם לא, אז התוכנית תדלג על החלק בסוגריים המסולסלים.
אפשר לא לכלול את הסוגריים המסולסלות אחרי פקודת ה-if. במקרה כזה שורה הבאה (המוגדרת עד לנקודה פסיק ";") תתבצע אם התנאי מתקיים. כל הדוגמאות הבאות תקינות:
קוד: בחר הכל
if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120)
digitalWrite(LEDpin, HIGH);

if (x > 120){ digitalWrite(LEDpin, HIGH); }

if (x > 120){
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
}


פעולות השוואה
התנאי שנבדק בתוך הסוגריים העגולים דורש פעולת השוואה אחת או יותר:
  • x == y מציין ש x שווה ל-y
  • x != y מציין ש-x שונה מ-y
  • x < y מציין ש-x קטן מ-y
  • x > y מציין ש-x גדול מ-y
  • x <= y מציין ש-x קטן או שווה ל-y
  • x >= y מציין ש-x גדול או שווה ל-y

שימו לב:
היזהרו לא להשתמש בטעות בסימן שווה אחד להשוואה בין ערכים, לדוגמה:
קוד: בחר הכל
if (x = 10)

סימן שווה האחד היא פקודת השמה שבדוגמה זו מכניסה ערך של 10 לתוך המשתנה x. במקום זה השתמשו בסימן שווה כפול:
קוד: בחר הכל
if (x == 10)

שזוהי פקודת השוואה ובדוגמה זו בודקת האם משתנה x שווה ל-10. בדוגמה האחרונה התנאי יתקיים רק כאשר x יהיה שווה ל-10, כאשר בדוגמה הקודמת (עם שווה אחד) התנאי יתקיים תמיד.
זה קורה בגלל שבשפת C הבדיקה של (x=10) מתפרשת בצורה הבאה: ערך 10 מוכנס לתוך המשתנה x (זכרו שסימן שווה אחד היא פקודת השמה), אז עכשיו משתנה x כולל ערך 10. פקודת if בודקת את ערך 10 ומפרשת אותו כחיווי של TRUE (אמת) מכיוון שכל מספר השונה מ-0 מתפרש כחיווי TRUE. כתוצאה מכך בדיקה של (x=10) תמיד תתפרש כ-TRUE (אמת) שזו לא התוצאה הרצויה של פקודת ה-if. בנוסף גם המשתנה x יקבל ערך 10 שגם זו לא הפעולה הרצויה.

פקודת if יכולה גם להיות חלק מתבנית בקרה if...else.


ראו גם:
פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של if לפי רישיון Creative Commons Attribution-ShareAlike 3.0.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 7914
הצטרף: ה' ינואר 28, 2010 8:27 pm

חזור אל תרגום מדריכים מהאתר arduino.cc

Jump box

מי מחובר

משתמשים הגולשים בפורום זה: CCBot [Bot]