שעור 7 :שפת c – תנאי (משפט הבקרה if)

תנאי בשפת C מתבצע על ידי משפט הבקרה if.

מתי צריך להשתמש בתנאי?

כאשר רוצים לבצע הוראה או הוראות, רק אם תנאי מסוים מתקיים. דוגמא:
אם המספר גדול משלוש, אז הדפס אותו.
במשפט הנ"ל ישנם שני חלקים : התנאי(אם) והביצוע (אז).
התחביר של משפט if:
	if ( תנאי )
		משפט;
הסבר התחביר:
המילה השמורה if ואחריה סוגריים,ובתוכם תנאי. רק אם התנאי מתקיים, יתבצע המשפט שצמוד ל if.
לפעמים נרצה לבצע כמה פעולות אם תנאי מסוים מתקיים, ואז נרשום את if כך:
	if ( תנאי )
	{
		בלוק;
	}
כעת,אם התנאי מתקיים יתבצעו כל הפעולות שנמצאות בתחום של הסוגריים המסולסלים.

מה זה "תנאי מתקיים" ?

תנאי מתקיים (תנאי "אמת") מבחינת המחשב, זהו ערך השונה מאפס. ערך זה יכול להתקבל עקב שאלה לוגית שהתשובה עליה חיובית (האם המספר גדול משלוש?),או על ידי הוצאת ערך מספרי.
דוגמא:
#include <stdio.h>
void main( )
{
	int num1=7;
	If (num1>3)
		printf (“the value is : %d \n”,num1);
}
הפלט:
the value is : 7
Press any key to continue
כמו שאפשר להבין מהתוכנית הנ"ל התנאי מתקיים (num1 גדול משלוש), ולכן מתבצעת הפונקציה printf.
! שים לב – לפעולת ההזחה אחרי משפט if- דבר שמקל על קריאת התוכנית והבנתה.
דוגמא נוספת:
#include <stdio.h>
void main( )
{
	int num1=82;
	int num2=82;
	if (num1==num2)
	{
		printf (“num1 = num2\n”);
		printf (“the numbers are equal\n”);
	}
}
הפלט:
num1 = num2
the numbers are equal
Press any key to continue
תוכנית הנ"ל נבדק התנאי-האם num1 שווה ל num2.תנאי זה מתקיים, לכן מתבצעות כל הפקודות שבתוך הבלוק.
! שים לב – כאשר אנו רוצים לשאול האם ערך שווה לערך אחר – אנו משתמשים באופרטור == ולא באופרטור = ( כמו בפעולת השמה).

אופרטורי היחס

אופרטורמשמעות
קטן מ-<
גדול מ->
שווה ל-==
קטן או שווה ל-<=
גדול או שווה ל->=
שונה מ-!=

else

למשפט if יכול להתווסף חלק נוסף שנקרא else (אחרת). מתי משתמשים בו?
דוגמא:
אם המספר גדול משלוש,אז הדפס true ,אחרת הדפס false.
#include <stdio.h>
void main( )
{
	int num1=7;
	if (num1>3)
		printf (“true\n”);
	else
		printf(“false”\n);
}
הפלט:
num1 = num2
true
Press any key to continue
החלק של else מתבצע אך ורק אם התנאי במשפט if לא מתקיים. כמו כן, אם ברצוננו לבצע כמה משפטים בעקבות אי קיום התנאי (else) ,אז נתחום אותם בסוגריים מסולסלים.

משפט הצבה מותנה

בשפת Cישנו אופרטור אחד בלבד שפועל על שלושה ביטויים- אופרטור ההתניה : ? .
תחביר אופרטור ההתניה:
condition ? expretion true : expretion false ;
המשפט הנ"ל מבוצע כך:
אם התנאי מתקיים ,אז ביטוי1 מתקיים ומוחזר ערכו, אחרת ביטוי2 מתקיים ומוחזר ערכו.
הקודים הבאים שקולים:
if (num > 20)
	flag = 1;
else
	flag = 0;
flag=(num>20)?1:0 ;



-----
מעוניין לפרסם כאן? צור קשר
אנא קראו את תנאי שימוש .
כל הזכויות שמורות למדריך לשפת C ©