C++/תנאים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Ybungalobill (שיחה | תרומות)
Ybungalobill (שיחה | תרומות)
שורה 141:
משפט זה נקרא גם '''הוראת בחירה''' כיוון שהתוכנית בוחרת את אחת האפשרויות המפורטות אחרי ה-switch. נסביר את אופן הפעולה של המשפט הזה. תחילה התוכנית מחשבת את הביטוי שנרשם בין הסוגריים אחרי ה-switch. תוצאת הביטוי צריכה להיות מטיפוס שלם כלשהו (int, char, short ...). לאחר מכן התוכנית קופצת לאפשרות ה-case המתאימה. במקרה ואף אחד מהערכים הקבועים שרשמנו אחרי ה-caseים לא שווה לערך הביטוי הנבדק, התוכנית תקפוץ לחלק ה-default (ברירת מחדל), במקרה והוא קיים. שימו לב שאין מיגבלות לסדר שבו נרשום את כל האפשרויות, גם את ה-default ניתן לרשום בהתחלה, באמצע או בכלל לא לרשום.
 
פוקודתפקודת ה-break '''אינה''' חלק בלתי נפרד מהמשפט הזה. כפי שנראה בעתיד [[C++/לולאות|בלולאות]], פקודה זו משמשת ליציאה מבלוק פקודות שתחום בסוגריים מסולסלים ששייךוששייך ללולאה או להוראת בחירה. כאשר התוכנית מגיע להוראת ה-break היא תצא מתוך הבלוק של הוראת הבחירה ותמשיך הלאה, ולאהיא תמשיךלא לבצעתבצע את הפקודות שבתוך הבלוק. במקרה שלנו, למשל אם answer מכיל את התו 'N' ואנחנו לא נרשום את הוראות ה-break, התוכנית תדפיס "It's your problem...\n" ותמשיך לחלק ה-default שבו תפלוט את המחרוזת "I can't understand you...\n". כתוצאה על המסך יופיעו שתי שורות שונות, במקום אחת.
 
אומנם, לא תמיד נרצה למנוע מהתוכנית להמשיך לבצע את שאר הפקודות שב-switch. נתבונן בדוגמה שבה דווקא אנחנו משתמשים בתכונה זו של משפט הבחירה:
{{בעבודה}}
 
<source lang="cpp">
switch(answer)
{
case 'y':
case 'Y':
cout << "Take an Apple!\n";
break;
 
case 'n':
case 'N':
cout << "It's your problem...\n";
break;
 
default:
cout << "I can't understand you...\n";
}
</source>
 
בדוגמה זו המשתמש אינו חייב להקליד דווקא אות גדולה, התוכנית תבין את תשובתו ללא תלות בגודל האות. אם למשל יקליד המשתמש את התו 'n', אז התוכנית תקפוץ ל-case השלישי ותמשיך עד לפקודת ה-break.
 
== אופרטור ההתניה ==