"11. 조건문" 에서 Boolean에 따라 프로그램이 다르게 동작하도록 하는 방법을 배웠다. 이번 시간에는 Boolean의 값을 결합해서 코드를 좀 더 간결하게 만들 수 있는 논리 연산자(Conditional Operator)에 대해서 알아보자.
&& (and)는 좌항과 우항의 값이 모두 true일 때 참이 된다.
아래 예제를 보면 true && true 인 경우 true로 출력되고, 하나라도 false이면 false로 출력된다는 것을 알 수 있다.
System.out.println(true && true); // true
System.out.println(true && false); // false
System.out.println(false && true); // false
System.out.println(false && false); // false
조건문에서의 예제를 개선한 코드이다. 중첩된 if문을 하나로 줄여 코드의 복잡성도 낮아졌다. 아래 예제는 "아이디가 word이고 비밀번호가 1234이면 참이다"라는 뜻이다.
package org.opentutorials.javatutorials.condition;
public class LoginDemo {
public static void main(String[] args) {
String id=args[0]; // 아이디
String pwd=args[1]; // 비밀번호
/* 아이디와 비밀번호 동시 체크 */
if (id.equals("word") && pwd.equals("1234")) {
System.out.println("right");
} else {
System.out.println("wrong");
}
}
}
|| (or)는 좌항과 우항 중 하나라도 true이면 전체가 true가 되는 논리 연산자다.
아래 예제를 보면 좌항과 우항 중 하나만 true 인 경우 true로 출력되고, 둘 다 false이면 false로 출력된다는 것을 알 수 있다.
System.out.println(true || true); // true
System.out.println(true || false); // true
System.out.println(false || true); // true
System.out.println(false || false); // false
아래 예제는 "아이디가 word 또는 qwer1234이고 비밀번호가 1234이면 참이다"라는 뜻이다.
package org.opentutorials.javatutorials.condition;
public class LoginDemo {
public static void main(String[] args) {
String id=args[0]; // 아이디
String pwd=args[1]; // 비밀번호
/* 아이디와 비밀번호 동시 체크 */
if ((id.equals("word") || id.equals("qwer1234")) && pwd.equals("1234")) {
System.out.println("right");
} else {
System.out.println("wrong");
}
}
}
! (not)는 부정의 의미로 Boolean의 값을 역전시키는 역할을 한다. true에 !를 붙으면 false가 되고, false에 !을 붙이면 true가 된다.
아래 예제를 보면 !true 인 경우 false로 출력되고, !false이면 true로 출력된다는 것을 알 수 있다.
System.out.println(!true); // false
System.out.println(!false); // true