用scanner.next将键盘输入的值赋给变量后再进行判断

import java.util.Scanner;
class Person{
public String name;
public int pass;
public void Sc(){
Scanner scanner=new Scanner(System.in);
name=scanner.next();
pass=scanner.nextInt();
System.out.println(name+","+pass);
if( name =="abc" && pass==123){
System.out.println("登陆成功");
}
else{
System.out.println("登陆失败");
}
}
}
public class Load {
public static void main(String [] args){
Person person=new Person();
person.Sc();
}
}
为什么键盘输入abc和123 会输出登录失败

name要用equals来比内容

==,可用于基本数据类型间比较数值,也可用于引用数据类型间比较地址(String就是引用数据类型);equals方法,在超类Object中有定义,用于比较对象内容是否相等。

参见http://blog.csdn.net/jueblog/article/details/9347791

==比较地址,eq比较内容。

name=scanner.next();
pass=scanner.nextInt();
System.out.println(name+","+pass);
if( name =="abc" && pass==123){

用equals去比较字符串,然后建议pass也用字符串,不然你输入pass一个字符串就会报错(因为字符串没法转换成数字)。

多谢各位的回答,现在问题解决了