【问题标题】:in.nextInt() Do While/Boolean Loop Issuein.nextInt() 执行 While/Boolean 循环问题
【发布时间】:2015-01-27 21:57:58
【问题描述】:

我刚开始使用 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");
    }
}

【问题讨论】:

  • 不要将您的密码定义为int,并尝试将其与String 进行比较。此外,String 的比较未与 ==!= 完成。另外,在检查输入之前不要打印“无效”。
  • p 在循环内声明,但您试图在外部使用它 - 作为循环终止代码

标签: java boolean do-loops


【解决方案1】:

首先,您将扫描仪定义为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");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    相关资源
    最近更新 更多