Menu
Coddy logo textTech

תנאי הגנה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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

challenge icon

אתגר

קל

צרו מתודה בשם validatePassword שמקבלת ארגומנט אחד:

  1. מחרוזת (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));
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין