Dev/Java

[Java] 제어문(조건문)

syuare 2025. 4. 16. 22:57

 

컴퓨터/시스템은 어떤 조건이나 상태를 마주했을 때 스스로 판단할 수 없다!

 

그렇기에 해당 조건이나 상태를 마주했을 때 어떤 판단을 내려야할 지 선택지를 제공할 수 있는데, 이 선택지를 제공하는 것이 제어문(조건문)이다.

 

제어문/조건문 (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. 실습

더보기

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();
            
        }

    }
}
* 다시 입력값을 받았으나, if문을 재실행하는 함수가 없어서 그냥 종료되었다..

 

'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