while循环使用Scanner

时间:2013-11-30 12:13:37

标签: java loops while-loop

您好我正在编写一个程序,该程序使用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

由于

2 个答案:

答案 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);

    }