Java--equals的用法?

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没关系,你密码的判断写的不对啊,你这判断只要用户名对了就登录成功了