LANGUAGE/JAVA
[JAVA] 삼항연산자
진심스테이크
2019. 7. 12. 08:51
삼항연산자 : if문을 비교적 짧고 간결하게 작성하는 방법
- 형태 : (조건문) ? 참일 때 값 : 거짓일 때 값
// 예시 1
int a = 10;
int b;
if (a < 0) {
b = 3;
} else {
b = 4;
}
// 삼항연산자
b = (a < 0) ? 3 : 4;
// 예시 2
if (a > 0) {
System.out.println("호랑이");
} else {
System.out.println("코끼리");
}
// 삼항연산자
System.out.println((a > 0) ? "호랑이" : "코끼리");
- 사용 예제
-> 어떤 값을 넣든 중간 값을 찾는 알고리즘
//중간 값 구하기
int a = 1, b = 2, c = 3;
// int a = 1, b = 3, c = 2;
// int a = 2, b = 1, c = 3;
// int a = 2, b = 3, c = 1;
// int a = 3, b = 1, c = 2;
// int a = 3, b = 2, c = 1;
/*
int mid;
if (a > b) { // a는 최대 아니면 중간
if (a > c) { // a는 최대
if (b > c) {
mid = b;
} else {
mid = c;
}
} else {
mid = a;
}
} else { // a는 최소 아니면 중간
if (a < c) { // a는 최소
if (b > c) {
mid = c;
} else {
mid = b;
}
} else {
mid = a;
}
}
*/
/*
int mid;
if (a > b) {
if (a > c) {
mid = Math.max(b, c);
} else {
mid = a;
}
} else {
if (a < c) {
mid = Math.min(b, c);
} else {
mid = a;
}
}
*/
// 최적화
int mid;
if (a > b) {
mid = (a > c)? Math.max(b, c) : a;
} else {
mid = (a < c)? Math.min(b, c) : a;
}
/*
// 보기 어려움
int mid;
mid = (a > b)? ((a > c)? Math.max(b, c) : a): ((a < c)? Math.min(b, c) : a);
*/
System.out.println(mid);