2017-12-25 6 views
0

登録プログラムを作成しています。詳細はテキストファイルに保存されます。ユーザーがすでに取得した電子メールを入力すると、「電子メールが既に登録されています」というメッセージが表示されます。そうでない場合は、電子メールをファイルに書き込む必要があります。私はコードを書いたが、電子メールはすでに登録されており、ファイルには何も書き込まれていないと常に言われている。ここで何が問題なの?私はファイルのみを使用し、配列やハッシュマップは使用しないでください。ここに)私のコード、検証は)(です(電子メール形式の検証のためのものであり、重複した電子メールの有無をチェックすることです:Javaファイルを使用して登録済みのメール

public static void main(String[] args) { 
    do { 
     System.out.println("Enter your e-mail"); 
     email = input.nextLine(); 
     check = validation(email); 
     if (check == false) { 
      System.out.println("Enter a valid email"); 
     } else { 
      check = duplicate(email); 
      if (check == true) { 
       writer.write("Email : " + email); 
       writer.println(); 
      } else { 
       System.out.println("E-mail already registered"); 
      } 
     } 
    } 
    while (check == false); 
} 

public static boolean validation(String email) { 
    boolean valid = false; 
    if (email.contains("@")) { 
     if (email.contains(".com")) { 
      valid = true; 
     } 
    } else { 
     valid = false; 

    } 
    return valid; 
} 

答えて

0

あなたのロジックは単純に逆転されます。 duplicateは、電子メールがすでに使用されている場合はtrueを返します。

check=duplicate(email); 
if (!check) { 
    writer.write("Email : "+email); 
    writer.println(); 
} else { 
    System.out.println("E-mail already registered"); 
} 

そして、あなたはあなたの変数やメソッドをより良い名前を与える必要があります:

boolean isDuplicate = isMailAlreadyRegistered(email); 
if (!isDuplicate) { 
    writer.write("Email : "+email); 
    writer.println(); 
} else { 
    System.out.println("E-mail already registered"); 
} 
+0

はどうもありがとう。それはあなたのチェックがなければならないことを意味し私はそんなに愚かな間違いをしていた。 –

関連する問題