התניה מקוננת

סגור באמצעות טופס זה תוכלו לספר ולהמליץ לחבריכם..
שם השולח:
כתובת דוא"ל של השולח:
שם המקבל:
שלח לכתובת דוא"ל:
הוסף הערה:
בהמושג קינון בא לתאר הכלה של משפט אחד בתוך משפט אחר, התניה מקוננת (או פקודת תנאי מקונן) היא צורה מקובלת למדי שמטרתה למנוע בדיקות מיותרות כאשר נמצאה התשובה המתאימה. היא חוקית משום שבמסגרת הבלוק של if או של else מותר לכתוב כל פקודה/מתודה חוקית ובין השאר גם פקודת if.



התניה מקוננת
 
מאת: ארז קלר
תנאי מקונן

 להורדת דוגמאות הקוד


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

תחביר:
 
if (boolean expression 1)
{
        statement 1;
        statement 2;
        …       
{
else if(boolean expression 2)
{
        statement 3;
        statement 4;
        …
}
else if(boolean expression 3)

{
        statement 5;
        statement 6;
        …
}
 
המידה והתנאי הראשון מתקיים נבצע את statement 1 ואת statement 2, במידה והוא אינו מתקיים נבדוק קימו של תנאי אחר, אם הוא מתקיים נבצע רת statement 3 ואת statement 4 , במידה והוא לא תקין נבדוק ..... וחוזר חלילה. 

לדוגמה (NestedIf):

 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         int num; 
 6  :         Console.WriteLine("Enter number between 1 to 100"); 
 7  :         num = int.Parse(Console.ReadLine()); 
 8  :         if (num < 1 || num > 100) 
 9  :             Console.WriteLine("Invalid number"); 
 10 :         else if (num >= 90) 
 11 :             Console.WriteLine("Big number"); 
 12 :         else if (num < 30) 
 13 :             Console.WriteLine("Small number"); 
 14 :         else 
 15 :             Console.WriteLine("Medium number"); 
 16 :     } 
 17 : } 
בשורה 6 ובשורה 7- נדרוש מהמשתמש להזין מספר בין 1 ל-100 (קלט פלט אינטראקטיבי).
בשורה 8 - נבדוק את חוקיות הקלט, במידה והקלט לא תקין נודיע זאת למשתמש (בשורה 9).
במידה והוא תקין נבדוק האם הוא גדול או שווה ל-90 (בשורה 10) במידה וכן נודיע לו שהוא בחר מספר גדול.
במידה והתשובה היא false, אנו יודעים שלא מדובר במספר גדול, נבדוק האם מדובר במספר קטן (בשורה 12),
במידה וכן נדפיס לו הודעה מתאימה, במידה וגם לזה קיבלנו false נדע שהוא הקליד מספר מסגק גודל בינוני ונדפיס לו הודעה מתאימה בשורה 15.
 
פלט:
פלט תוכנית הדוגמה NestedIf


דוגמה נוספת (NestedIf2):
 1  : class Program 
 2  : { 
 3  :     static void Main(string[] args) 
 4  :     { 
 5  :         Console.WriteLine("Enter month (1 - 12)"); 
 6  :         int month = int.Parse(Console.ReadLine()); 
 7  :         if (month < 1 || month > 12) 
 8  :             Console.WriteLine("Error"); 
 9  :         else if (month == 1) 
 10 :             Console.WriteLine("January"); 
 11 :         else if (month == 2) 
 12 :             Console.WriteLine("February"); 
 13 :         else if (month == 3) 
 14 :             Console.WriteLine("March"); 
 15 :         else if (month == 4) 
 16 :             Console.WriteLine("April"); 
 17 :         else if (month == 5) 
 18 :             Console.WriteLine("May"); 
 19 :         else if (month == 6) 
 20 :             Console.WriteLine("June"); 
 21 :         else if (month == 7) 
 22 :             Console.WriteLine("July"); 
 23 :         else if (month == 8) 
 24 :             Console.WriteLine("August"); 
 25 :         else if (month == 9) 
 26 :             Console.WriteLine("September"); 
 27 :         else if (month == 10) 
 28 :             Console.WriteLine("October"); 
 29 :         else if (month == 11) 
 30 :             Console.WriteLine("November"); 
 31 :         else 
 32 :             Console.WriteLine("December"); 
 33 :     } 
 34 : } 

פלט:
פלט התוכנית NestedIf02

השימוש ב- Nested IF נדרש בהרבה מאוד מקרים והוא די שכיח, אולם צריך להיזהר,
כאשר משתמשים בו בצורה מוגזמת הקוד הופך להיות לא קריא ומורכב להבנה, קוד לא קריא הוא מקור מצוין לתקלות ושגיאות לוגיות.