조건문과 반복문은 정말 유용하게 쓰이는 제어문이다. 조건문과 반복문에 대하여 충분히 이해하고 활용할 수 있어야 한다.
if
, switch
, 삼항연산자
조건문이 있다. 또한 if
조건문은 if ~ else if
으로 활용할 수 도 있다.아래의 형식을 가지며 조건식이 true일 경우에 실행 코드가 구현됩니다.
if (조건식){
실행 코드
}
예시
int check = 100;
int num1 = 150;
if (num1 > check) {
System.out.println("100보다 큰 수입니다");
}
if ~ else if
의 예시
int num2 = 50;
if (num1 > check) {
System.out.println("100보다 큰 수입니다");
} else {
System.out.println("100보다 작은 수입니다.");
}
if
조건문안의 식이 false이므로 else
블럭 안의 코드가 실행.
switch문은 아래의 형식을 가진다.
switch (입력 변수){
case 입력값1 : 실행 구문
break;
case 입력값2 : 실행 구문
break;
case 입력값3 : 실행 구문
break;
default: 기본 실행 구문
break;
}
Java에서는 한 문장의 끝에 세미콜론이 있어야 한다고 했다. 여기서도 break이후에 세미콜론을 붙여야 함. break를 하지 않을 시, 다음 case 코드 블럭도 실행됨.
참고로, break는 해당하는 case 또는 for/while 문에서 괄호 안을 빠져나가는 동작을 한다.
switch문의 예시
char score = 'A';
switch (score) {
case 'A':
System.out.println("A등급입니다.");
break;
case 'B':
System.out.println("B등급입니다.");
break;
case 'C':
System.out.println("C등급입니다.");
break;
default:
System.out.println("C등급보다 낮은 등급입니다.");
break;
}
switch는 ENUM 클래스를 대상으로 지정하면 ENUM 클래스의 type을 case의 대상으로 쉽게 지정할 수 있다. ENUM 클래스를 대상으로 지정하면 타입 안정성을 제공한다. 쉽게 말하면, case의 대상에 대해서 오타 때문에 버그가 발생할 가능성을 줄여준다. ENUM 클래스 안에 들어오는 변수들은 대문자로만 선언하는 게 사람들 간에 암묵적인 약속이다.
ENUM 클래스 활용 예시
package com.fastcampus.de.java.clip6;
public class SwitchStatement {
enum Score {
A,B,C,D,E;
}
public static void main(String[] args) {
Score input = Score.A;
switch (input){
case A:
System.out.println("score: 4.0");
break;
case B:
System.out.println("score: 3.0");
break;
case C:
System.out.println("score: 2.0");
break;
default:
break;
}
}
}
삼항연산자: '?'를 기준으로 조건식이 true일 경우에는 A 코드를, false일 경우에는 B 코드를 수행
(조건식) ? A : B
의 구조를 가지고 있다.
예제
int a = 10;
String result = (a < 10) ? "10보다 작다" : (a == 10) ? "10이다" : "10보다 크다";
System.out.println(result);