תנאי הגנה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 38 מתוך 59.
תנאי הגנה הם הצהרות תנאי בתחילתה של מתודה, שבודקות תנאים לא תקינים ומחזירות מוקדם. הם עוזרים להפוך את הקוד לנקי וקריא יותר, באמצעות טיפול תחילה במקרי קצה.
בואו נראה שיטה ללא סעיפי guard:
public int divide(int num, int den) {
if (den != 0) {
if (num >= 0) {
return num / den;
} else {
return -1;
}
} else {
return -1;
}
}אותה שיטה עם סעיפי הגנה:
public int divide(int num, int den) {
if (den == 0) return -1;
if (num < 0) return -1;
return num / den;
}לאחר ביצוע אחד משני קטעי הקוד עם divide(10, 2), התוצאה היא:
5
אתגר
קלצרו מתודה בשם validatePassword שמקבלת ארגומנט אחד:
- מחרוזת (
password) שיש לאמת
המתודה צריכה להשתמש בתנאי יציאה מוקדמת כדי לאמת את הסיסמה ולהחזיר מחרוזת הודעה בהתאם לכללים האלה:
- אם הסיסמה היא null: יש להחזיר "Password cannot be null"
- אם הסיסמה ריקה: יש להחזיר "Password cannot be empty"
- אם אורך הסיסמה קטן מ-8: יש להחזיר "Password must be at least 8 characters"
- אם הסיסמה מכילה רווחים: יש להחזיר "Password cannot contain spaces"
- אם כל הבדיקות עוברות: יש להחזיר "Valid password"
נסו בעצמכם
import java.util.Scanner;
public class Main {
public static String validatePassword(String password) {
// כתבו את הקוד שלכם כאן
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
if (password.equals("null")) {
password = null;
}
System.out.println(validatePassword(password));
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר Java אונליין