Java ==!= && ||运营商?

Java ==!= && ||运营商?

问题描述:

我的代码有问题。此代码应检查登录名和密码。问题是else if语句显示错误的输出。例如,当我输入用户名== admin和密码== 1234时,它显示的用户名不正确。Java ==!= && ||运营商?

import java.io.*; 

public class login 
{ 
public static void main(String [] args) throws IOException 
{ 
    String username = "admin"; 
    String password = "123"; 

    BufferedReader inData = new BufferedReader(new InputStreamReader(System.in)); 

    System.out.print("Enter username : "); 
    username = inData.readLine(); 

    System.out.print("Enter password : "); 
    password = inData.readLine(); 

    if((username == "admin") && (password == "123")) 
    { 
     System.out.println("Welcome " + username + "\n*** Login Sucessfully ***" + "\n*** Access Granted ***"); 
    } 
    else if((username != "admin") && (password == "123")) 
    { 
     System.out.println("Sorry, username is incorrect!\n*** Access Denied ***"); 
    } 
    else if((username == "admin") && (password != "123")) 
    { 
     System.out.println("Sorry, password is incorrect!\n*** Access Denied ***"); 
    } 
    else if((username != "admin") && (password != "123")) 
    { 
     System.out.println("Sorry, username and password is incorrect!\n*** Access Denied ***"); 
    } 
} 
} 
+1

当你比较字符串时你明白==和equals的区别吗? – Li357

+0

@Kero Kero ==用于比较用于比较String的int或float值(数字)和.equals()方法。 – yash

+0

@AndrewL。哦,以前从来不知道。现在我明白了==和.equals之间 –

.equals().equals()方法用于在这种情况下比较字符串。例如
username.equals("admin"),它比较变量用户名的值和值“admin”,这里都是字符串