תנאי שמירה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 19 מתוך 66.
תנאי הגנה הם משפטי תנאי בתחילתה של מתודה, שבודקים מקרי קצה או קלטים לא תקינים ומחזירים ערך מוקדם אם התנאים האלה מתקיימים.
בואו ניצור מתודה ללא סעיף שמירה:
public void ProcessOrder(Order order)
{
if (order != null)
{
// עבד את ההזמנה
// שורות קוד רבות כאן...
}
}כעת, נשכתב את זה עם סעיף שמירה:
public void ProcessOrder(Order order)
{
if (order == null)
{
return; // תנאי שמירה - צא מוקדם אם order הוא null
}
// עבד את ההזמנה
// הרבה שורות קוד כאן...
}תנאי שמירה משפרים את הקריאות באמצעות צמצום ההקצנה וטיפול במקרים חריגים בתחילת המתודה.
אתגר
קלצרו מתודה בשם DivideNumbers שמקבלת שני מספרים שלמים, numerator ו-denominator.
- הוסיפו תנאי הגנה כדי לבדוק אם המכנה הוא אפס.
- אם המכנה הוא אפס, הדפיסו: "Cannot divide by zero" והחזירו 0.
- אחרת, חלקו את המונה במכנה והחזירו את התוצאה.
נסו בעצמכם
using System;
public class Program
{
public static int DivideNumbers(int numerator, int denominator)
{
// כתבו את הקוד שלכם כאן
}
public static void Main()
{
// קראו את הקלטים מהמסוף
int numerator = Convert.ToInt32(Console.ReadLine());
int denominator = Convert.ToInt32(Console.ReadLine());
// קראו למתודה DivideNumbers
int result = DivideNumbers(numerator, denominator);
// הדפיסו את התוצאה
Console.WriteLine(result);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין