삼항 연산자
- 조건식의 결과 값에 따라 연산을 처리하는 연산자
- 조건식이 참일 경우 식1을 실행, 거짓일 경우 식2를 실행
- 삼항 연산자 중첩 사용 가능
짝수, 홀수 확인
public void method1() {
int nInput = 0;
String sResult = "";
Scanner s = new Scanner(System.in);
System.out.printf("Input Number(e.g. 3): ");
nInput = s.nextInt();
sResult = (nInput % 2 == 0) ? "EVEN" : "ODD";
System.out.printf("%d is \"%S\"\n", nInput, sResult);
}
결과값
Input Number(e.g. 3): 100
100 is "EVEN"
양수, 음수, 0 확인
public void method() {
int nInput = 0;
String sResult = "";
Scanner s = new Scanner(System.in);
System.out.println("Input Integer: ");
nInput = s.nextInt();
sResult = (nInput > 0) ? "Positive" : (nInput < 0) ? "Negative" : "Zero";
System.out.printf("Result: " + sResult);
}
결과값
Input Integer: 10
Result: Positive
Input Integer: -7
Result: Negative
Input Integer: 0
Result: Zero
3개 정수를 입력받아 비교하여 모두 같으면 true, 아니면 false를 출력
public void practice6() {
int nData1 = 0;
int nData2 = 0;
int nData3 = 0;
boolean bResult = false;
Scanner s = new Scanner(System.in);
System.out.printf("Insert Integer1: ");
nData1 = s.nextInt();
System.out.printf("Insert Integer2: ");
nData2 = s.nextInt();
System.out.printf("Insert Integer3: ");
nData3 = s.nextInt();
bResult = (nData1 == nData2) && (nData2 == nData3);
System.out.println("Result: " + bResult);
}
결과값
Insert Integer1: 10
Insert Integer2: -3
Insert Integer3: 7
Result: false
Insert Integer1: 7
Insert Integer2: 7
Insert Integer3: 7
Result: true
삼항 연산자로 계산기 만들기
public void method2() {
int nData1 = 0;
int nData2 = 0;
char cOp = ' ';
String sResult = "";
Scanner s = new Scanner(System.in);
System.out.printf("Input Integer1: ");
nData1 = s.nextInt();
System.out.printf("Input Integer2: ");
nData2 = s.nextInt();
s.nextLine(); // 버퍼에 입력되어 있는 개행문자 제거
System.out.printf("Input Operator: ");
cOp = s.nextLine().charAt(0);
sResult = (cOp == '+') ? (nData1 + nData2) + "" : // 빈문자열을 결합하여 연산된 결과값을 문자열로 변환
(cOp == '-') ? (nData1 - nData2) + "" :
(cOp == '*') ? (nData1 * nData2) + "" :
(cOp == '/') ? (nData1 / nData2) + "" :
"\"ERROR\"";
System.out.printf("%d %c %d = %s\n", nData1, cOp, nData2, sResult);
}
결과값
Input Integer1: 92
Input Integer2: 67
Input Operator: *
92 * 67 = 6164
Input Integer1: 28
Input Integer2: 35
Input Operator: a
28 a 35 = "ERROR"