משפטי תנאי מופיעים בקוד בכמויות גדולות מאוד.
בהיעדר כללים אפשר להסתבך קשות עם משפטי תנאי מורכבים ולהתמודד מאוחר יותר עם באגים "טיפשיים" אך קשים מאוד לגילוי (שכן הקומפיילר בדרך כלל לא יצעק אם התנאי הלוגי שלך שגוי).
להלן מספר כללים שיעזרו לך לכתוב את משפטי התנאי המורכבים בצורה שיטתית ונכונה ועם מינימום באגים:
- לא משנה כמה תנאים יש לך - תמיד עטוף את הקטע הביצועי בסוגריים מסולסלים.
if (height > 3 && width >12)
if (height <= 6 && width <= 15)
size = 1;
else if (height <= 9 && width <= 15)
size = 2;
cout << size << endl; // When will this line execute?
else
MsgBox ("Unknown size");
- הזחה - הקפד על עימוד הקוד בתוך תנאים ולולאות, אל תאחד שורות תנאי וביצוע:
if (height <= 6 && width <= 15) size = 1;
if (height > 3 && width >12)
if (height <= 6 && width <= 15) size = 1;
else if (height <= 9 && width <= 15)....
if (height <= 6 && width <= 15)
{
size = 1;
}
- היררכיה של תנאים הינה מתכון בטוח לבאגים. הקפד לאחד תנאים מורכבים כך שתוכל לראות את כל ההתניות מול העיניים:
if (height > 3 && width >12)
{
if (height <= 6 && width <= 15)
{
size = 1;
}
else if (height <= 9 && width <= 15)
{
size = 2;
}
else
{
MsgBox ("Unknown size");
}
}
else
{
MsgBox ("Unknown size");
}
if (height > 3 && height <= 6 && width >12 && width <= 15)
{
size = 1;
}
else
{
if (height > 3 && height <= 9 && width >12 && width <= 15)
{
size = 2;
}
else
{
MsgBox ("Unknown size");
}
}