Java:如何正确使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (64)

以下是我使用的代码:

    int pass = 123 ;

    Scanner password = new Scanner(System.in);
    System.out.println("Please Enter Your Password : ");


    if (password.hasNextInt() && password.nextInt()==pass)
    {
        System.out.println("ok");
    }
    else if (password.hasNextInt()) 
    {
        System.out.println("wrong pass");
    }
    else
    {
        System.out.println("wrong type");
    }
提问于
用户回答回答于

问题是Scanner methods like nextInt()使用以后不再可用的输入Scanner calls

int pass = 123 ;

Scanner password = new Scanner(System.in);
System.out.println("Please Enter Your Password : ");


if (password.hasNextInt() && password.nextInt()==pass)  // line A
{
    System.out.println("ok");
}
else if (password.hasNextInt())                         // line B
{
    System.out.println("wrong pass");
}
else
{
    System.out.println("wrong type");
}
用户回答回答于

你正在使用hasNextInt()From Java文档

如果此扫描器输入中的下一个标记可以解释为int值,则返回true

所以要两次输入:

Input:
1234 (first Input)
1234 (Then hasNextInt() is asking for input again)
OutPut :

wrong pass

制作了这个简单的片段供使用

Scanner password = new Scanner(System.in);
System.out.println("Please Enter Your Password : ");
int pass = 123;
try {
   int myInput = password.nextInt();
   if (myInput == pass) {
       System.out.println("ok");
   }else{
       System.out.println("wrong pass");
   }
}catch (java.util.InputMismatchException e) {
     System.out.println("wrong type");
}

扫码关注云+社区

领取腾讯云代金券