if-중독자 탈출법.zip | 자바 제어문 제대로 써보자

2025. 7. 20. 15:08·Back-End/Java

✅ 자바 제어문 완전 정복: if, switch, for, while 총정리

자바 입문자라면 반드시 익혀야 하는 흐름 제어 문법들!
조건에 따라 분기하고, 반복하는 기본 구조를 정리해보자.


🧩 1. if 문 — 조건에 따라 분기하자

조건이 true일 때만 블록 안의 코드를 실행하는 문법.

int age = 14;

if (age > 19) {
    System.out.println("성인입니다.");
} else if (age > 13) {
    System.out.println("청소년입니다.");
} else {
    System.out.println("어린이입니다.");
}

✅ 설명

  • if: 조건이 참일 때 실행
  • else if: 앞이 거짓이고, 여기가 참일 때 실행
  • else: 위 조건 전부 거짓일 때 실행

중괄호 {}는 한 줄일 경우 생략 가능하지만, 가독성을 위해 생략하지 않는 것을 추천!


📐 예제 - 좌표로 사분면 구하기

// 1. 각 조건식에서 저장할 문자열값(사분면의 위치)을 담을 변수 선언
String functionScope = null; // String과 같은 참조 자료형은 기본값(비워져 있음)을 null로 표시

// 2. 스캐너 생성
Scanner sc = new Scanner(System.in);
System.out.println("x: ");
int x = sc.nextInt();

System.out.println("y: ");
int y = sc.nextInt();

// 3. 조건문 작성
if (x > 0 && y > 0) {
    // x, y가 모두 양수: 제 1사분면
    functionScope = "제1사분면";
} else if (x < 0 && y > 0) {
    functionScope = "제2사분면";
} else if (x < 0 && y < 0) {
    functionScope = "제3사분면";
} else {
    functionScope = "제4사분면";
}

// 4. functionScope 값 출력
System.out.println("결과: " + functionScope);

// 5. 스캐너 종료
sc.close();

 


🎯 2. switch 문 — 정확한 값 비교

변수의 값이 정확히 일치할 때 다른 동작을 실행하고 싶을 때 사용!

int chapter = sc.nextInt();

switch (chapter) {
    case 1:
        System.out.println("자바 기본 문법");
        break; // 해당 case의 실행이 끝나면 switch 문을 빠져나옴! (break 뒤에 문장 작성 X)
    case 2:
        System.out.println("자바 제어문");
        break;
    default:
        System.out.println("해당하는 챕터가 없습니다.");
}

✅ 설명

  • case가 일치하면 해당 블록 실행
  • break 없으면 아래 case도 쭉 실행됨 (fall-through 현상)
  • default: 어떤 case에도 해당 안 될 때 실행

🍎 예제 - 과일 색상 구분기

String fruit = sc.nextLine();

switch (fruit) {
    case "apple":
        System.out.println("빨간색");
        break;
    case "banana":
        System.out.println("노란색");
        break;
    default:
        System.out.println("등록되지 않은 과일입니다.");
}

 


🔁 3. for 문 — 반복 횟수가 정해졌을 때

for (int i = 1; i <= 5; i++) {
    System.out.print(i); // 12345
}

✅ 설명

  • (초기화; 조건식; 증감식)
  • 조건이 참이면 실행 → 증감 → 다시 조건 체크
  • 주로 횟수 기반 반복에 적합

📚 예제 - 짝수 출력기

for (int i = 1; i <= 10; i++) { // i는 1부터 10까지 반복
    if (i % 2 == 0) { // 조건식을 통해 짝수만 출력
        System.out.print(i); // 246810
    }
}

📊 예제 - 3단 구구단

// : 구구단 (3단)
System.out.println();
System.out.println("=== 3단 ===");
int num = 3; // '3'단

for (int i = 1; i <= 9; i++) {
    System.out.println("3 X " + i + " = " + num * i);
}

 


🌀 예제 - 전체 구구단 출력 (2단 ~ 9단)

java
복사편집
for (int i = 2; i <= 9; i++) { System.out.println("[ "
// >> 2단 ~ 9단까지 반복 (8번 반복)
// >> 각 단의 내부에서는 1부터 9까지 숫자 반복 (9번 반복)
for(int i = 0; i < 8; i++) {
	// 2단부터 9단까지 반복
	int dan = i + 2;
	System.out.println("[ " + dan + "단 ]");
	// System.out.println("[ " + (i + 2) + "단 ]");

	for(int j = 0; j < 9; j++) {
   		int number = j + 1; // 1부터 9까지 반복
    	System.out.println(dan + " X " + number + " = " + dan * number);
	}
}

🧭 4. while 문 — 조건 기반 반복

조건이 참이면 계속 반복! 단, 반복 횟수가 정해져 있지 않을 때 자주 사용.

// 초기화식
int num = 1;

while (num <= 5) { // 조건식
    System.out.print(num);
    num++; // 증감식
}

 


⛔ break / continue 예제

 
  •  
int number = 0;

while (true) { // if문 & while문의 조건식은 결과값이 논리형(boolean)
           // : while문의 조건식을 true 값으로 고정하는 경우
           //      , 종료시점(break)을 개발자가 직접 명시하지 않으면 무한 루프 발생! (무한루프 종료 ctrl + f2)
           // >> 프로그램의 과부하 방지를 위해 지양
    if (number % 2 == 0) { // 짝수
        number++; // 다음 수(홀수)를 위한 작업
        continue; // 조건식으로 다시 돌아감!
    }

    System.out.println(number); // 홀수만 해당 내용 실행
    number++; // 다음 수(짝수)를 위한 작업

    if (number == 20) break;
}

 


🔁 do-while 문 — 무조건 1번은 실행

int doNum = 1;

do {
    System.out.println(doNum);
    doNum++;
} while (doNum <= 5);

✅ 차이점

종류 조건 검사 시점 최초 실행 횟수
while 실행 전 검사 0
do-while 실행 후 검사 1
 

🧪 사용자 입력 예제 – 1~10 사이 숫자 입력받기

Scanner sc = new Scanner(System.in);

int inputNumber;

do {
    System.out.println("1부터 10 사이의 숫자를 입력하세요 :)");
    inputNumber = sc.nextInt();
} while (inputNumber < 1 || inputNumber > 10); // 1 ~ 10 사이인 경우 반복문 종료

System.out.println("올바른 숫자: " + inputNumber);


// cf) while 문은 반복 전에 조건을 검사하기 때문에, 초기 입력 코드를 반복문 밖에 따로 작성
System.out.println("1 ~ 10 사이의 숫자를 입력하세요");
inputNumber = sc.nextInt(); // 조건 검사 전 입력을 받기 위한 코드 중복 발생

while (inputNumber < 1 || inputNumber > 10) {
    System.out.println("다시 입력하세요. (1 ~ 10)");
    inputNumber = sc.nextInt();
}

 


✨ 마무리 요약

  • if / else: 조건 분기
  • switch: 정확한 값 비교
  • for: 반복 횟수 고정
  • while / do-while: 조건 기반 반복
  • break, continue: 흐름 제어

📝 참고 & 꿀팁

  • 코드 정렬 단축키 (IntelliJ): Ctrl + Alt + L
  • 출력 안 될 땐 Scanner 개행 문자 처리 주의!
  • 반복문 중첩 시에는 변수 이름 겹치지 않게 조심

'Back-End > Java' 카테고리의 다른 글

객체 지향 프로그래밍(OOP) 란?  (3) 2025.07.28
자바 배열의 모든 것: 코드로 배우는 핵심 개념  (2) 2025.07.23
자바 입문 0→1: 개념 부수고 실력 올리기  (1) 2025.07.17
자바 처음 시작한다면 꼭 봐야 할 기초 개념 모음  (0) 2025.07.15
개발자를 위한 Git & GitHub 완벽 연동 가이드  (0) 2025.07.12
'Back-End/Java' 카테고리의 다른 글
  • 객체 지향 프로그래밍(OOP) 란?
  • 자바 배열의 모든 것: 코드로 배우는 핵심 개념
  • 자바 입문 0→1: 개념 부수고 실력 올리기
  • 자바 처음 시작한다면 꼭 봐야 할 기초 개념 모음
rpsnrpsn
rpsnrpsn
rpsnrpsn 님의 블로그 입니다.
  • rpsnrpsn
    rpsnrpsn 님의 블로그
    rpsnrpsn
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • Back-End (18)
        • Java (17)
        • DB (1)
      • Front-End (3)
        • HTML (1)
        • CSS (0)
        • JavaScript (1)
        • Etc. (1)
  • 블로그 메뉴

    • 홈
    • Github
  • hELLO· Designed By정상우.v4.10.4
rpsnrpsn
if-중독자 탈출법.zip | 자바 제어문 제대로 써보자
상단으로

티스토리툴바