조건문 if는 결과 값이 true 면 해당 if문을 출력하고 false 면 다음 if문으로 넘어간다.
else if문을 통해 이중 조건문을 걸 수 있다.
public class IfApp {
public static void main(String[] args) {
System.out.println("a");
if(false) {
System.out.println(1);
} else if(true) {
System.out.println(2);
} else {
System.out.println(3);
}
System.out.println("b");
}
}
id의 값과 inputId의 값이 일치하면 "Master!"가 출력되고 일치하지 않으면 "Who are you?"가 출력되게 해보았다.
미리 Run configurations > Arguments 에서 egoing을 작성해두었다.
비교연산자 == 를 통해 비교하려했더니 문자열은 == 를 통해 비교할 수 없다.(내용이 같더라도 출력값은 false이다.)
그래서 문자열 비교는 equals 메소드를 이용해야 한다.
public class AuthApp {
public static void main(String[] args) {
String id = "egoing";
String inputId = args[0];
System.out.println("Hi.");
//if(inputId == id) {
if(inputId.equals(id)) {
System.out.println("Master!");
} else {
System.out.println("Who are you?");
}
}
}
이번에는 id와 password 가 일치해야 "Master!"가 출력되게 해보았다.
if(inputId.equals(id)) {
if(inputPass.equals(pass)) {
System.out.println("Master!");
} else {
System.out.println("Wrong password");
}
} else {
System.out.println("Who are you?");
이렇게 이중 if문으로 할 수도 있지만 아래처럼 좀 더 단순하게 논리연산자 && 을 이용해서 만들 수도 있다.
public class AuthApp {
public static void main(String[] args) {
String id = "egoing";
String inputId = args[0];
String pass = "1111";
String inputPass = args[1];
System.out.println("Hi.");
if(inputId.equals(id) && inputPass.equals(pass)) {
System.out.println("Master!");
} else {
System.out.println("Who are you?");
}
}
}