Menu
Coddy logo textTech

ガード節

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 38/59。

ガード節は、メソッドの先頭にある条件分岐文で、無効な条件をチェックして早期にリターンします。これにより、エッジケースを最初に処理することで、コードをよりクリーンで読みやすくします。

ガード節を使わないメソッドを見てみましょう:

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 つの引数を受け取ります:

  1. 検証する String (password)

このメソッドはガード節を使用してパスワードを検証し、次のルールに基づいてメッセージ文字列を返します:

  • password が null の場合:return "Password cannot be null"
  • password が空の場合:return "Password cannot be empty"
  • password の長さが 8 未満の場合:return "Password must be at least 8 characters"
  • password にスペースが含まれる場合:return "Password cannot contain spaces"
  • すべてのチェックを通過した場合:return "Valid password"

チートシート

ガード節は、メソッドの先頭にある条件分岐文で、無効な条件をチェックし、早期にリターンすることでコードをよりクリーンで読みやすくします。

ガード節なし:

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;
}

自分で試してみよう

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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン