컴퓨터/시스템은 어떤 조건이나 상태를 마주했을 때 스스로 판단할 수 없다!
그렇기에 해당 조건이나 상태를 마주했을 때 어떤 판단을 내려야할 지 선택지를 제공할 수 있는데, 이 선택지를 제공하는 것이 제어문(조건문)이다.
제어문/조건문 (if, if-else, else if, switch)
크게는 if문과 switch문으로 나뉜다.
if 문
조건1이 참이면 if문 내의 코드를 실행해라
if (조건1) {
// 조건 1이 참일 때 실행할 코드
}
if 문의 경우 조건의 갯수에 따라 if / if-else / else if 를 선택할 수 있다.
if-else 문
조건1이 참이면 if 문 내의 코드를 실행하고,
거짓이면 else 문 내 코드를 실행해라
if (조건1) {
// 조건 1이 참일 때 실행할 코드
} else {
// 조건 1이 거짓일 때 실행할 코드
}
else-if 문
조건이 여러 개일 경우 else-if문을 사용한다.
- 조건 1이 참이면 if 문 내 명령을 실행해라
- 조건 1이 거짓일 경우, 조건 2가 참이면 else if 문 내 명령을 실행해라
- 조건 1이 거짓이고, 조건 2가 거짓이면 else 문 내 명령을 실행해라
조건 수 만큼 else if로 조건문을 추가할 수 있다.
if (조건1) {
// 조건 1이 참일 때 실행할 코드
} else if (조건2){
// 조건 1이 거짓이고, 조건 2가 참일 때 실행할 코드
} else {
// 조건 1, 조건2 모두 거짓일 때 실행할 코드
}
더보기

public class Main {
public static void main(String[] args) {
String light = "노란불";
if(light.equals("초록불")) {
System.out.println("건너세요!");
} else if (light.equals("노란불")) {
System.out.println("주의하세요.");
} else {
System.out.println("멈추세요!");
}
System.out.println("...");
}
}

switch 문
값의 종류에 따라 여러 동작을 명령할 수 있다.
단, switch의 조건은 단일값일 때만 사용할 수 있다. (조건식은 사용할 수 없다.)
- 그렇다보니, if문에 비해서는 한계가 명확할 수 있다.
- 다만, 조건으로 단일값을 사용할 수 있다면 if문보다 확실히 간결하게 작성할 수 있다.
switch (단일값) {
case 값1:
// 값1일 때 실행할 코드
break;
case 값2:
// 값2일 때 실행할 코드
break;
default:
// 위의 값들과 일치하지 않을 때 실행할 코드
// default 문은 선택사항!
}
더보기

int number = 3;
switch (number){
case 1:
System.out.println("1입니다.");
break;
case 2:
System.out.println("2입니다.");
break;
default:
System.out.println("1도 아니고, 2도 아닙니다.");
}

*break: 제어문에서 벗어날 때 사용, 쉽게 말하면 탈출 버튼
- switch문에서 break; 를 사용하지 않을 경우 fall-through(폴스루) 현상을 겪는다.
- fall-through: 하나의 case절에서 break 문을 사용하지 않고 다음 case 절로 코드 실행 흐름이 이어지는 것
- 즉, switch에 break가 없으면, 조건값이 참인 것부터 순서대로 명령 실행함
Appendix. 실습
더보기

* 다시 입력값을 받았으나, if문을 재실행하는 함수가 없어서 그냥 종료되었다..
Q1. 입력받은 신호등 색상에 따라 올바른 안내 메시지를 출력해라
import java.util.Scanner;
public class TrafficLight {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("신호드 색상은 3가지로, 초록불/노란불/빨간불 중 하나만 입력하실 수 있습니다.");
System.out.print("신호등 색상을 입력해주세요: ");
String light = scanner.nextLine();
if(light.equals("초록불")){
System.out.println("건너세요!");
} else if (light.equals("노란불")) {
System.out.println("주의하세요!");
} else if (light.equals("빨간불")){
System.out.println("멈추세요!");
} else {
System.out.println("신호등 색상을 잘못 입력했어요.");
System.out.print("다시 신호등 색상을입력해주세요: ");
light = scanner.nextLine();
}
}
}

'Dev > Java' 카테고리의 다른 글
[Java] 배열 (0) | 2025.04.18 |
---|---|
[Java] next() vs nextLine() (0) | 2025.04.17 |
[Java] 연산자 (0) | 2025.04.15 |
[Java] 문자열 데이터 비교 / 비교연산자(==) vs .equals() (0) | 2025.04.15 |
[Java] 입출력(Input, OutPut) (0) | 2025.04.15 |