Как добавить цикл к этой проверке паролей

#java

Вопрос:

Я создал программу проверки паролей. Все, что он делает, — это запрашивает пароль, а затем выводит, если пароль не соответствует правилам, которые я установил. Я хотел бы получить помощь, чтобы понять, как правильно это сделать, чтобы вы могли проверить несколько паролей без перезапуска.

 import java.util.Scanner;  public class password {  public static void main(String[] args) {  String end = "endofinput";  Scanner word = new Scanner(System.in);  System.out.print("Password:");  String password = word.nextLine();  // password  if(password.contains("password")){  System.out.println("Password may not contain the word password");  }  // lenght   if( password.length() lt; 8){  System.out.println("Needs to be longer");  }  //space/special check  if((password.contains(" ")||password.contains("@")|| password.contains("#")|| password.contains("!") || password.contains("~")|| password.contains("$") || password.contains("%") || password.contains("^")|| password.contains("*") || password.contains("(")|| password.contains(")") || password.contains("-")|| password.contains(" ") || password.contains("/")|| password.contains(":") || password.contains("amp;")|| password.contains(".")|| password.contains(", ") || password.contains("lt;")|| password.contains("gt;")|| password.contains("?")|| password.contains("|"))){  System.out.println("No spaces or special Characters");  }  // Number  if(!(password.contains("1")|| password.contains("2")||password.contains("3")||password.contains("4")||password.contains("5")||password.contains("6")||  password.contains("7")||password.contains("8")||password.contains("9")||password.contains("0"))){  System.out.println("Need a Number");  }  // upper case  if (true) {  int count = 0;  for (int i = 65; i lt;= 90; i  ) {    // type casting  char c = (char)i;    String e = Character.toString(c);  if (password.contains(e)) {  count = 1;  }  }  if (count == 0) {  System.out.println("Needs an uppercase letter");  }  }  //lower case  if (true) {  int count = 0;  for (int i = 90; i lt;= 122; i  ) {    // type casting  char c = (char)i;  String str1 = Character.toString(c);    if (password.contains(str1)) {  count = 1;  }  }  if (count == 0) {  System.out.println("Needs Lower case");  }  }  } }  

Комментарии:

1. Попробуйте обернуть все это в while цикл с условием выхода.

2. Я второй Refugnic с небольшой корректировкой: оставьте первые 2 строки за пределами цикла.

Ответ №1:

Просто добавьте некоторое время с условием «True» и поставьте «если» с условием, которое вы хотите, например, чтобы выйти из цикла ìf(password == "Exit") . подобный этому.

 while(true)  {  System.out.print("Password:");  String password = word.nextLine();  if(password == "exit")  {  System.out.println("Ending the program");  break; //this break will stop the loop  }  // password  if(password.contains("password")){  System.out.println("Password may not contain the word password");  }  // lenght   if( password.length() lt; 8){  System.out.println("Needs to be longer");  }  //space/special check  if((password.contains(" ")||password.contains("@")|| password.contains("#")|| password.contains("!") || password.contains("~")|| password.contains("$") || password.contains("%") || password.contains("^")|| password.contains("*") || password.contains("(")|| password.contains(")") || password.contains("-")|| password.contains(" ") || password.contains("/")|| password.contains(":") || password.contains("amp;")|| password.contains(".")|| password.contains(", ") || password.contains("lt;")|| password.contains("gt;")|| password.contains("?")|| password.contains("|"))){  System.out.println("No spaces or special Characters");  }  if(!(password.contains("1")|| password.contains("2")||password.contains("3")||password.contains("4")||password.contains("5")||password.contains("6")||  password.contains("7")||password.contains("8")||password.contains("9")||password.contains("0"))){  System.out.println("Need a Number");  }  // upper case  if (true) {  int count = 0;  for (int i = 65; i lt;= 90; i  ) {    // type casting  char c = (char)i;    String e = Character.toString(c);  if (password.contains(e)) {  count = 1;  }  }  if (count == 0) {  System.out.println("Needs an uppercase letter");  }  }  //lower case  if (true) {  int count = 0;  for (int i = 90; i lt;= 122; i  ) {    // type casting  char c = (char)i;  String str1 = Character.toString(c);    if (password.contains(str1)) {  count = 1;  }  }  if (count == 0) {  System.out.println("Needs Lower case");  }  }  }  

Комментарии:

1. Используйте equals вместо » пароль == «выход»»