您好我正在编写一个程序,该程序使用Scanner从用户获取输入,然后使用布尔方法检查输入的长度是否最多为六个字符。问题是,如果长度小于6,我使用while循环来继续询问输入;但是在第一次输入错误之后,如果插入六个字母或更长的字符串,循环仍然会继续。请在这里是程序:
import java.util.Scanner;
public class PasswordChecker{
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
String input;
System.out.println("Enter a password");
input = kbd.nextLine();
boolean result = LengthCheck(input);
LengthCheck(input);
while(result == false){
System.out.println("Please enter a minimum password of six characters");
input = kbd.nextLine();
}
System.out.println(input);
System.out.println(result);
}//close main
public static boolean LengthCheck(String input){
boolean result = false;
int length = 6;
if(input.length() >= length){
result = true;
}
return result;
}//LengthCheck
}//PasswordChecker
由于
答案 0 :(得分:1)
在您的方案中,您希望在密码长度超过六个字符时退出循环。因此,您需要确保在while
声明中检查该条件。
这将为您解决问题:
while(LengthCheck(input) == false){
System.out.println("Please enter a minimum password of six characters");
input = kbd.nextLine();
}
循环将继续复苏,直到您满意LengthCheck
输入了6位数的密码。
答案 1 :(得分:0)
你需要在while循环中检查LengthCheck()
,试试这个
while(result == false){
System.out.println("Please enter a minimum password of six characters");
input = kbd.nextLine();
-> result = LengthCheck(input);
}