title: Program which prompts the user to enter a password and checks conditions
body: <p>So I have been working on this program which prompts the user to enter a password but the password must be at least 8 characters long and only contain letters and digits. Here is my code:</p>
  
  <pre><code>import java.util.Scanner;
  
  public class Password {
  
    public static void main(String[] args) {
      // TODO Auto-generated method stub
      Scanner input = new Scanner(System.in);
      System.out.println("Please enter a password: ");
      String password = input.nextLine();
      boolean valid = true;
  
      if (valid(password)) {
        System.out.println("Password accepted!");
      }
    }
  
    public static boolean valid(String password) {
      if (password.length() &lt; 8) {
        System.out.println("Password must have at least eight characters.");
        return false;
      } else {
      char c;
      for (int i = 0; i &lt; password.length(); i++) {
        c = password.charAt(i);
        if (password.matches("[0-9a-zA-Z]+")) {
          return true;
        } else {
          System.out.println("Password must only contain letters and digits.");
          return false;
        } 
      }
      return true;
      }
    }
  }
  </code></pre>
  
  <p>The problem I'm having is that when I enter an input like $$$, the only output is "Password must have at least eight characters", but I need both this output and ""Password must only contain letters and digits." In other words, I need the program to check if both conditions are false and display both outputs. How would I go about doing that?</p>
  
  <p>Also, if you have any suggestions on how to make my program better, that would be helpful as well.</p>
  
  <p>Thank you!</p>