ガード節
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
チャレンジ
簡単validatePassword という名前のメソッドを作成してください。このメソッドは 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));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。