본문 바로가기

JAVA

삼항연산자 | 21/11/04

package operator;

public class Ex7 {

public static void main(String[] args) {
/*
 * 삼항연산자(조건연산자) ?:
 * - 피연산자가 3개인 연산자
 * - 특정 조건에 따라 다른 값을 취하는(실행하는) 연산자
 *   => if ~ else 문과 동일한 기능을 수행
 * - 2가지 경우의 수(true 또는 false)에 대한 결과를 얻을 수 있는 연산자
 * 
 * < 기본 문법 >
 * 연산식 ? 값1 : 값2
 * => 연산식에는 결과값이 boolean 타입(true 또는 false)인 식만 올 수 있다!
 * => 연산식 판별 결과가 true 일 경우 값1 부분을 실행하고,
 *            ""         false 일 경우 값2       ""
 */

int a = 11;

System.out.println(a % 2 == 0); // a를 2로 나눈 나머지가 0인지(= 짝수) 판별하는 연산식
// => 현재 a 값이 10이므로 2로 나눈 몫은 5이고, 나머지가 0이므로 true 가 출력됨

// 삼항연산자 연산 결과값을 출력문 에 사용 가능함
System.out.println(a % 2 == 0 ? "짝수" : "홀수");
// => 현재 a 값이 10이므로 2로 나눈 몫은 5이고, 나머지가 0이므로 true 가 리턴되며
//    연산식의 결과값이 true 이면 두번째 피연산자인 "짝수" 를 선택하게 됨
//    따라서, System.out.println("짝수"); 코드를 실행한 것과 동일한 결과가 출력됨

// 삼항연산자 연산 결과값을 출력문 대신 변수에 저장도 가능함
String result = a % 2 == 0 ? "짝수" : "홀수"; // 결과가 true 일 때 String result = "짝수"; 와 동일한 코드
System.out.println(result);

System.out.println("----------------------------");

int num1 = 30, num2 = 20;

// num1 과 num2 중에서 num1 이 클 경우 max 에 num1 값을 저장하고, 아니면 num2 값을 저장
// = num1 과 num2 중에서 큰 값을 max 에 저장
int max = num1 > num2 ? num1 : num2;
System.out.println(max);
}
}

삼항 연산자의 사용법과 예시

출력 결과

false
홀수
홀수
----------------------------
30

 

뭔가 if문을 짧고 간단하게 할 수 있을것같다 마음에 드는 연산자다 ㅎㅎㅎ