永发信息网

帮看一下这个JAVA小程序,cmd里执行,为什么最后输入正确的密码0606还是会提醒"Please enter the Password"

答案:6  悬赏:70  手机版
解决时间 2021-03-30 19:53
  • 提问者网友:暗中人
  • 2021-03-30 12:29
帮看一下这个JAVA小程序,cmd里执行,为什么最后输入正确的密码0606还是会提醒"Please enter the Password"
最佳答案
  • 五星知识达人网友:平生事
  • 2021-03-30 14:09
你的程序,密码是390。
正像上面的答案所说,C、Java这样的语言里,0开头的数字是八进制。
if(password!=0606)
0606即八进制的606=6*8*8+0*8+6=390
把if(password!=0606)改成if(password!=606)可以让密码正确,但因为是比较整数,所以下面几种密码也能通过:
606
000000606
00606 qwer
建议改成比较字符串。
全部回答
  • 1楼网友:一秋
  • 2021-03-30 19:15

  • 2楼网友:孤老序
  • 2021-03-30 17:46
if(password!=606)
再试试
  • 3楼网友:雪起风沙痕
  • 2021-03-30 16:59
你把if判断条件里的0606改成606就行了。nextInt方法接收的数据的时候应该自动忽略第一个0吧
  • 4楼网友:白昼之月
  • 2021-03-30 15:45

哥们,你用的是int类型,int类型里没有0606,你输入0606它就会变成606,所以会进入死循环,换成String就行了import java.util.*;
public class Continue
{
    public static void main(String[] args)
    {
        Scanner inp=new Scanner(System.in);
        while(true)
        {
            System.out.println("Please enter the password: ");
            String password=inp.next();
            if(!"0606".equals(password)){
                continue;
            }
            break;
        }
        System.out.println("Password Correct!");
    }
}
  • 5楼网友:痴妹与他
  • 2021-03-30 14:36
int类型的0606 在java中是八进制整数。
你用8进制整数表示输入的数值就可以了
Scanner inp=new Scanner(System.in);
while(true)
{
System.out.println("Please enter the password: ");
int password = Integer.parseInt(inp.nextLine(), 8);
if(password != 0606)
{
continue;
}
break;
}
System.out.println("Password Correct!");
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯