package game;
import java.util.Scanner;
public class Quest {
public static void main(String[] args) {
String username = "user";
String password = "123";
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String words = sc.nextLine();
if(name.equals(username) && words.equals(words)) {
System.out.println("用户名和密码正确,成功登陆!");
}
}
}
判断用户登陆
请输入用户名:
user(输入user)
请输入密码:
11(输入11)
用户名和密码正确,成功登陆!
显然,输入的密码并不正确
equals连续判断(使用&&),是否只能判断第一个?
认真看代码,不要写错了。
// 后面判断的是同一个变量,words.equals(words) 就好像你明知道1=1一样
if(name.equals(username) && words.equals(words)) {
System.out.println("用户名和密码正确,成功登陆!");
}
两个同时为真才可以 ,任何一个尾假都不满足
1. 对象内容的比较,需要使用equals()方法
2. Java语言中的“==”对于基本数据类型就是比较其值,而对于对象就是比较对象的引用。
改成
if(name.equals(usrtname) &&words.equals(password)){
System.out.prinyln("用户名和密码正确,成功登陆!")
}
就可以了
要正确的理解 equals和==的区别,熟悉它底层的构造,了解更多it信息,来抖音,it一哥
这跟equal没关系,你密码的判断写的不对啊,你这判断只要用户名对了就登录成功了