2015-10-15 1 views
0

Я все еще новичок в программировании на Java. И может ли кто-нибудь сказать мне, что случилось с исходным кодом? Когда я запускаю код, условное присваивание всегда выводит «login failed».Простой логин с кодом Java - использование условного назначения

import java.util.Scanner; 
public class ProgramBiodataMahasiswa { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     String username, password, output; 
     System.out.print("Enter username  : "); 
     username = input.nextLine(); 
     System.out.print("Enter password  : "); 
     password = input.nextLine(); 
     output = (username=="kesit" && password=="ps123") ? "login successfully" : "login failed" ; 
     System.out.println(output); 
    } 
} 
+0

попробуйте использовать выход = (username.equals ("kesit") && password.equals ("ps123"))? «login login»: «login failed»; – WannaBeGeek

+1

Вы также должны проверить [этот вопрос] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java), чтобы понять, почему вы должны использовать 'equals' вместо' = = '. – saadq

ответ

1

С струнных ("квест" и "ps123") вы не должны использовать ==, чтобы проверить, если они равны. Это будет сравнивать указатель и из-за того, что String в Java неизменяемы, указатели всегда будут разными. Поэтому используйте

username.equals("kesit") && password.equals("ps123"). 

Это должно сработать!

2

Использование .equals

output = (username.equals("kesit") && password.equals("ps123")) ? "login successfully" : "login failed" ; 
1

Вы не можете сравнивать строки в Java, используя ==. Вы должны использовать метод equals. например username.equals("kesit") && password.equals("ps123")

Смежные вопросы