in.nextInt()Do While / Boolean循环问题

时间:2015-01-27 21:57:58

标签: java boolean do-loops

我刚刚开始使用Java并且正在学习Do / While循环和布尔值;但是,nexInt会出现错误。我不知道我在做什么:)。 这是该程序应该完成的任务: “设置密码变量并为此变量分配密码。运行您的 程序并键入无效密码以检查并查看您的布尔逻辑是否正确。一旦正确 输入密码后,程序应该停止询问输入。“

这是我到目前为止所做的:

import java.util.Scanner;
import static java.lang.System.*;

class PasswordCheck
{
    private String password;

    public PasswordCheck()
    {
        password = "ilovecats";
    }

    public void check()
    {
        Scanner keyboard = new Scanner(System.in);
        do
        {
            int p;
            System.out.println("Enter the password :: ");
            p = in.nextInt();
            System.out.println("INVALID");
        }while (password!=p);
        System.out.println("VALID");
    }
}

1 个答案:

答案 0 :(得分:0)

首先,您将扫描仪定义为keyboard,然后尝试从in读取。其次,您正在阅读int而不是String

第三,使用Java中的.equals进行字符串比较。

import java.util.Scanner;
import static java.lang.System.*;

class PasswordCheck
{
    private static String password = "ilovecats";

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        while (true)
        {
            String p;
            System.out.println("Enter the password :: ");
            p = in.next();
            if (!password.equals(p)) {
                System.out.println("INVALID");
                continue;
            }
            break;
        } 
        System.out.println("VALID");
    }
}