c programming tutorial - בקלות C++
מדריכי תכנות

שיעור 2: פקודות If

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

ללא פקודה עם תנאי כמו if תוכניות היו רצות כמעט באותו אופן בכל פעם. פקודות if מאפשרות את שינוי זרימת התוכנית.

אנא שים לב שכל האופרטורים הבוליאנים או הערכים יהיו באותיות גדולות כדי להבחין בינם לבין אנגלית נורמלית. שים לב גם שהסמלים לאופרטורים מתוארים מאוחר יותר, אבל הסמלים ב ++C אינם NOT ,OR ו AND. משמעותם היא פשוט זהה.

ישנם דברים רבים להבין כאשר משתמשים בפקודות if. עליך להבין אופרטורים בוליאנים כגון NOT ,OR ו AND. עליך גם להבין השוואות בין מספרים ובעיקר, את הרעיון של true ו false באותו אופן שמחשבים מבינים זאת.

אמת ושקר ב ++C מסומלים במספר שונה מאפס, ואפס. לכן, 1 הוא TRUE ו 8.3 הוא TRUE אבל 0 הוא FALSE. אף מספר אחר לא מתפרש כשקר.

כאשר מתכנתים, התוכנית לעיתים קרובות תדרוש בדיקה של ערך אחד שמאוחסן במשתנה מול ערך אחר, כדי לקבוע איזה מהם גדול יותר, קטן יותר או אם השניים שווים.

כדי לעשות זאת, משתמשים במספר אופרטורים.

האופרטורים של יחסים, כפי שהם מוכרים, יחד עם דוגמאות:

< גדול מ 4<5 זה אמת
> קטן מ 5>4 זה אמת
=< גדול מ או שווה ל 4=<4 זה אמת
=> קטן מ או שווה ל 4=>3 זה אמת

סביר מאוד שכבר ראית את זה קודם באיזשהו ביטוי מתמטי, קרוב לוודאי עם סמלים קצת שונים. הם לא צריכים להוות מעצור בהבנה. יותר מעניינים הם האופרטורים הבוליאנים. הם מחזירים 0 עבור שקר, ומספר שונה מאפס עבור אמת.

NOT: פירושו רק שהתכנית צריכה להפוך את הערך. לדוגמא, NOT(1) יהיה 0. NOT(0) יהיה 1.
(כל מספר פרט לאפס)NOT יהיה 0. ב C ו NOT ,C++ נכתב כ !.

AND: זוהי פקודה חשובה נוספת, היא מחזירה אחד אם 'זה' AND (וגם) 'זה' הם אמת. (1) AND (0) יהיה 0 כיוון שלא שניהם אמת, רק 1 הוא אמת. (1) AND (1) יהיה 1. (כל מספר ממשי פרט לאפס) (0) AND יהיה 0. (כל מספר ממשי פרט לאפס) AND (כל מספר ממשי פרט לאפס) יהיה 1. ה AND נכתב כ && ב ++C. אל תתבלבל ותחשוב שזה בודק שוויון בין מספרים. זה לא. זכור ש AND יקבל ערך לפני OR.

OR: הפקודה OR היא שימושית מאוד! אם אחד מ (או) שני הערכים שהיא בודקת הם אמת, היא תחזיר אמת. לדוגמא, (1) OR (0) יהיה 1! (0) OR (0) יהיה 0. (כל מספר ממשי) OR (כל מספר ממשי פרט לאפס) יהיה 1! ה OR נכתב כ || ב ++C. אלו הם התווים של ה pipe. על המקלדת שלך הם עשויים להראות כמו נקודתיים מתוחות. על המחשב שלי הם חולקים מקש עם \. זכור ש OR יקבל ערך לאחר AND.

הדבר הבא הוא ללמוד לצרף אותם... מה זה (0 && 1)! ? כמובן, זה יהיה אמת (1). זה כיוון ש 0 && 1 מקבל ערך 0 ו 0! שווה ל 1.

נסה כמה מאלה... הם לא קשים. אם יש לך שאלות לגביהם, אתה יכול לשלוח לי email.

!(1 || 0) .A תשובה: 0
!(1 || 1 && 0) .B תשובה: 0 (AND מקבל ערך לפני OR)
!((1 || 0 ) && 0) .C תשובה: 1 (סוגריים הן שימושיות)

אם אתה מוצא שאתה נהנה מזה, אתה עשוי לרצות להתבונן יותר באלגברה בוליאנית, שהיא גם מאוד שימושית למתכנתים כיוון שהיא שימושית לעזרה בתכנות פקודות עם תנאים.

המבנה של פקודת if הוא באופן בסיסי:


if (TRUE)
	עשה את מה שנמצא בשורה הבאה

כדי שתתבצע יותר מפקודה אחת לאחר פקודת if (כאשר היא מקבלת ערך אמת) השתמש בסוגריים מסולסלות.

לדוגמא,

if (TRUE)
{
	עשה את כל מה שבין הסוגריים המסולסלות
}

ישנה גם הוראת ה else. הקוד שאחריה (אם שורה אחת או קוד בין סוגריים מסולסלות) מתבצע אם פקודת ה IF היא שקר.

היא יכולה להראות כך:

if (FALSE)
{
	לא מתבצע אם זה שקר
}
else
{
	עשה את כל זה
}

שימוש אחד של else הוא אם יש שתי פקודות תנאי ששתיהן יהיו אמת עם אותו ערך (אבל רק לפעמים. לדוגמא, x<30 ו x<50 יחזירו שניהם אמת אם x הוא פחות מ 30 אבל לא להפך), אבל אתה רוצה שרק אחד מהם ייבדק. אתה יכול להשתמש ב else לאחר פקודת ה if. אם פקודת ה if היתה אמת, הוראת ה else לא תיבדק. ניתן להשתמש במספר פקודות else שאחריהן פקודות if.

בואו נסתכל על תוכנית פשוטה בשביל שתנסה בעצמך...

#include <iostream.h>			

int main()				//Most important part of the program!
{
  int age;				//Need a variable...
  cout<<"Please input your age: ";	//Asks for age
  cin>>age;				//The input is put in age
  if(age<100)				//If the age is less than 100
  {
     cout<<"You are pretty young!";     //Just to show it works
  }
  else if(age==100)		//I use else just to show an example 
  {
     cout<<"You are old";		//Just to show you it works...
  }
  else if(age>100)
  {
    cout<<"You are really old";	//Proof that it works for any condition
  }
  return 0;
}

תכנית זו לא השתמשה ב && || או ! בתוכה. זה בגלל שהיא לא הייתה צריכה לעשות זאת. מטרתה הייתה להדגים פקודות if.




לדף הראשון

<< לדף הקודם

לדף הבא >>