本人大一剛接觸Java,有個問題急需解決,希望大佬們出手相助

作業要求:撰寫一個應用程式,提示用戶輸入至少包含兩個大寫字母、至少三個小寫字母和至少一個數字的密碼。不斷重新提示用戶,直到輸入有效密碼。顯示指示密碼是否有效的訊息;如果無效,則顯示密碼無效的原因。將檔案另存為驗證密碼.java.
注意:使用“Scanner”類從用戶處讀取輸入資料。
我寫的代碼:
import java.util.Scanner;
public class ValidatePassword {
public static void main(String[] args) {
String Password;
Scanner input = new Scanner(System.in);
System.out.println("Please set a legal password.");
System.out.println("At least 2 uppercase letters, at least 3 lowercase letters, and at least 1 digit.)");
System.out.print(">> ");
Password = input.next();
int upperCount = 0;
int lowerCount = 0;
int digitCount = 0;
for (int i = 0; i < Password.length(); i++) {
char x = Password.charAt(i);
if (Character.isUpperCase(x)) {
upperCount++;
}
if (Character.isLowerCase(x)) {
lowerCount++;
}
if (Character.isDigit(x)) {
digitCount++;
}
}
if (upperCount < 2 && lowerCount < 3 && digitCount < 1) {
System.out.println("Error: Inadequate uppercase letters,lowercase letters,digits.");
} else if (upperCount >= 2 && lowerCount >= 3 && digitCount < 1) {
System.out.println("Error:Inadequate digits.");
} else if (upperCount >= 2 && lowerCount < 3 && digitCount >= 1) {
System.out.println("Error:Inadequate lowercase letters.");
} else if (upperCount < 2 && lowerCount >= 3 && digitCount >= 1) {
System.out.println("Error:Inadequate uppercase letters.");
} else if (upperCount >= 2 && lowerCount < 3 && digitCount < 1) {
System.out.println("Error:Inadequate lowercase letters,digits.");
} else if (upperCount < 2 && lowerCount >= 3 && digitCount < 1) {
System.out.println("Error:Inadequate uppercase letters,digits.");
} else if (upperCount < 2 && lowerCount < 3 && digitCount >= 1) {
System.out.println("Error:Inadequate uppercase letters,lowercase letters.");
} else if (upperCount >= 2 && lowerCount >= 3 && digitCount >= 1) {
System.out.println("ojbk");
}
}
}
我這個只能夠運行一次就終止了,怎樣才可以在輸錯的情況下再次運行呢?
uj5u.com熱心網友回復:
最懶的辦法,代碼外面加個殼:while(true){//不管咋樣,就是不會退出
//這里復制你的代碼
}
可以把true改成你判斷退出的條件,使程式更人性化一點。
uj5u.com熱心網友回復:
視線轉移到判斷部分:if (upperCount < 2 && lowerCount < 3 && digitCount < 1) {
System.out.println("Error: Inadequate uppercase letters,lowercase letters,digits.");
}
System.out.println("請再次輸入密碼");
重置屬性 再次計算
if (upperCount >= 2 && lowerCount >= 3 && digitCount < 1) {
System.out.println("Error:Inadequate digits.");
}
System.out.println("請再次輸入密碼");
重置屬性 再次計算...
uj5u.com熱心網友回復:
外成套一層for 回圈,成功以后用break 跳出轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268682.html
標籤:Java SE
上一篇:幫忙
下一篇:請問大神這個用JAVA怎樣實作?
