관계 연산자
● 이항 연산자
● 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함
● 조건문, 반복문의 조건식으로 많이 사용 됨
public class RealtionalTest {
public static void main(String[] args) {
int num1 = 5;
int num2 = 3;
boolean value = (num1 > num2);
System.out.println(value);
System.out.println(num1 < num2);
System.out.println(num1 >= num2);
System.out.println(num1 <= num2);
System.out.println(num1 == num2);
System.out.println(num1 != num2);
}
}
논리 연산자
● 관계 연산자와 혼합하여 많이 사용 됨
● 연산의 결과가 true(참), false(거짓)으로 반환 됨
public class LogicalTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
boolean flag = (num1 > 0) && (num2 > 0);
System.out.println(flag);
flag = (num1 < 0) && (num2 > 0);
System.out.println(flag);
flag = (num1 > 0) || (num2 > 0);
System.out.println(flag);
flag = (num1 < 0) || (num2 > 0);
System.out.println(flag);
flag = !(num1 > 0);
System.out.println(flag);
}
}
논리 연산에서 모든 항이 실행되지 않는 경우
(short circuit evaluation)
● 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true
-- 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
● 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
-- 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
public class ShortCircuitTest {
public static void main(String[] args) {
int num1 = 5;
int i = 0;
boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
}
}
조건 연산자
● 삼항 연산자
● 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
● if (조건문)을 간단히 표현할 때 사용 할 수 있음
import java.util.Scanner;
public class ConditionTest {
public static void main(String[] args) {
int max;
System.out.println("입력 받은 두 수중 큰 수를 출력하세요\n ");
Scanner scanner = new Scanner(System.in);
System.out.println("입력1:");
int x = scanner.nextInt();
System.out.println("입력2:");
int y = scanner.nextInt();
max = (x > y)? x : y;
System.out.println(max);
}
}
연산자 우선순위
● 가장 높은 순위 연산자는 () [] .
● 가장 낮은 순위 연산자 =