我是一个Java初学者,下面是我写的一个程序,编译没有错误,但结果总是一个样,无论输入为什么样,我很苦恼,不知错在何处,求高手指教,谢谢!
import java.util.Scanner;
public class Login {
/*String name;String pass;
Login(String name,String pass){
this.name=name;
this.pass=pass;
}*/
public void loginValidity(String name,String pass){
if(name=="zhan" && pass=="abc"){
System.out.println("登录成功!");
}
else{
System.out.println("登录失败!");
}
}}
public class LoginTest { public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("请输入用户名:");
String s1=s.next();
System.out.print("请输入密码:");
String s2=s.next();
//System.out.print("输入完成");
Login l=new Login();
l.loginValidity(s1,s2);
}}
运行结果总是:
请输入用户名:zhan //输入用户名
请输入密码:abc //输入密码
登录失败! //结果就只有这一个
很苦恼,请求高手予以帮助,谢谢!
import java.util.Scanner;
public class Login {
/*String name;String pass;
Login(String name,String pass){
this.name=name;
this.pass=pass;
}*/
public void loginValidity(String name,String pass){
if(name=="zhan" && pass=="abc"){
System.out.println("登录成功!");
}
else{
System.out.println("登录失败!");
}
}}
public class LoginTest { public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.print("请输入用户名:");
String s1=s.next();
System.out.print("请输入密码:");
String s2=s.next();
//System.out.print("输入完成");
Login l=new Login();
l.loginValidity(s1,s2);
}}
运行结果总是:
请输入用户名:zhan //输入用户名
请输入密码:abc //输入密码
登录失败! //结果就只有这一个
很苦恼,请求高手予以帮助,谢谢!
System.out.println("登录成功!");
} 改为if("zhan".equals && "abc".equals(pass)){
System.out.println("登录成功!");
}
if(name.equals("zhan") && pass.equals("abc")){就可以了 你是对=号和equals没有理解
字符串比较用equals()