它不断跳过我声明的其他部分。如果没有满足所有其他限制,我只希望它打印出无效行。为什么它跳过我的if-else语句的其他部分?
import java.util.Scanner;
public class Program_3
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a password: ");
String str = input.nextLine();
boolean lowerCase = false;
boolean upperCase = false;
boolean number = false;
char y;
for (int i = 0; i < str.length(); i++)
{
y = str.charAt(i);
if(Character.isUpperCase(y))
{
upperCase = true;
}
else if(Character.isDigit(y))
{
number = true;
}
else if(Character.isLowerCase(y))
{
lowerCase = true;
}
}
if (lowerCase == true)
{
if (upperCase == true)
{
if (number == true)
{
if (str.length() >= 8)
{
System.out.println("Verdict:\t Valid");
}
}
}
}
else
System.out.println("Verdict:\t Invalid");
}
}
为什么当所有的if不符合时,它会跳过并且不打印无效的行?
不需要== true它们已经是布尔值 – Ghokun
谢谢!这非常有帮助!我不知道为什么我没有想到这一点! – Nick