黑马程序员技术交流社区

标题: 登录 [打印本页]

作者: Java1211张美红    时间: 2016-1-1 22:01
标题: 登录

public class Login {
        public static void main(String[] args) {
                //登录
                //1.模拟键盘录入用户名,密码
                //2.如果用户名和密码都正确,则成功
                //3.有三次机会
               
                Scanner sc = new Scanner(System.in);
                for (int i = 1;i <= 3;i++){
                        System.out.println("请输入用户名:");
                        String name = sc.nextLine();
                        System.out.println("请输入密码:");
                        String password = sc.nextLine();
                        //字符串是引用类型 == 比较的是地址值,应该用equals
                        /*if (name == "admin" && password == "admin") {
                                System.out.println("欢迎使用");
                        } else {
                                System.out.println("用户名或密码错误,请重新输入");
                        }*/
                       
                        if ("admin".equals(name) && "admin".equals(password)) {
                                System.out.println("欢迎使用");
                        } else {
                                System.out.println("用户名或密码错误,请重新输入,您还有" + (3-i) + "次机会");
                        }
                }
        }       
}
上课学习的小程序,小功能,自己敲时,总会出现点不同,比如:name == "admin",我想比较的是name变量的内容和"admin"的内容是否相等,但是,若直接使用"=="的话,会出现错误,因为"=="比较引用类型的地址,而我想比较的确实内容,所以,程序就出现了问题,应该使用String的equals方法,来比较两个字符串的内容是否相等.
另外,建议"admin".equals(name)这样写,不建议name.equals("equals"),因为name是变量,变量有可能为空,这样来null是无法调用方法的,所以,就会报错了!







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2