实现用户登录时信息验证

jimmyguomi 2013-04-03 10:14:10
实现以下操作: 请用户输入用户名:manage
请用户输入密码:0000

用户名和密码不匹配!你还有2次机会进入系统,请重新输入!
请用户输入用户名:manage
请用户输入密码:1111

用户名和密码不匹配!你还有1次机会进入系统,请重新输入!
请用户输入用户名:guomi
请用户输入密码:110120

欢迎进入我行我素购物管理系统!!!
注:超过3次输入就打印 《不好意思你没有权限进入系统!!!》
为什么下面我写的代码没法实现上面的操作,老是提示用户不匹配,求解?可以在我的代码上进行修改.
代码:
public static void main(String[] args) {
String userName = "guomi";
String userpassword = "110120";
for(int i =3;i>=1;i--){
Scanner sc = new Scanner(System.in);
System.out.println("请用户输入用户名:");
String name = sc.next();
System.out.println("请用户输入密码:");
String password = sc.next();
if(name == userName && password == userpassword){
System.out.println("欢迎进入我行我素购物管理系统!!!");
break;
}else if(name != userName || password != userpassword){
System.out.println("用户名和密码不匹配!你还有"+(i-1)+"次机会进入系统,请重新输入:");

}else{
System.out.println("不好意思你没有权限进入系统!!!");

}
}
}
...全文
287 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
用.equal()
回复
用.equal()
回复
Homer_Gu 2013-04-04
引用 1 楼 a_c_e 的回复:
楼主,你好,在java中,比较字符串是否相同,不能用if(name == userName && password == userpassword)这样的方法,因为==比较的是两个字符串的地址,计算机为每个变量申请的地址都不一样,所以楼主你的程序就会出现不匹配的问题,楼主应该改为: if(name.Equals(userName)==true &……
+1
回复
阿七哥 2013-04-04
楼主,你好,在java中,比较字符串是否相同,不能用if(name == userName && password == userpassword)这样的方法,因为==比较的是两个字符串的地址,计算机为每个变量申请的地址都不一样,所以楼主你的程序就会出现不匹配的问题,楼主应该改为: if(name.Equals(userName)==true &&password.Equals(userpassword)==true )
回复
jimmyguomi 2013-04-04
多谢各位,忘记了,呵呵。
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2013-04-03 10:14
社区公告
暂无公告