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是无法调用方法的,所以,就会报错了!
|
|