벌써부터 내용이 심화되어 가고 있는 것 같은 기분이 든다.
이번엔 실무에서 많이 사용되는 조건, 반복문에 대해 적어본다.
텍스트로만 봤을 땐 어렵게 느껴졌는데
개념 구조를 신호등에 비유해보니 이해하기 수월했다.
🟢 초록불 → "건너세요!"
🟡 노란불 → "조심하세요!"
🔴 빨간불 → "멈추세요!"
프로그램이 어떤 상황(조건)을 만났을 때, 스스로 판단해서 다르게 동작하도록 만드는 것
이 조건
IF 문 - 만약 참이면 실행
가장 기본적인 선택지
java
if (조건식) {
// 조건이 참(true)이면 여기를 실행
명령문;
}
```
java
int 나이 = 10;
if (나이 >= 8) {
System.out.println("학교에 다닐 나이야!"); // ✅ 실행됨
}
흐름
1. 조건 확인: `10 >= 8` → 참인가?
2. 예 → 실행
3.아니오 → 무시하고 다음 코드로
IF-ELSE 문 - 참이면...아니면...
만약 아니면 다른 것을 하고 싶을 때
```java
if (조건식) {
// 조건이 참이면
명령문1;
} else {
// 조건이 거짓이면
명령문2;
}
```
신호등 예시
```java
String 신호 = "초록불";
if (신호.equals("초록불")) {
System.out.println("건너세요!"); // ✅ 실행됨
} else {
System.out.println("멈추세요!");
}
```
if-else는 둘 중 하나만 실행
- 초록불이 참이면 첫 번째 실행 ✅
- 초록불이 거짓이면 두 번째 실행 ✅
- 둘 다 실행되진 않음
ELSE-IF 문 - "여러 가지 경우가 있을 때"
선택지가 3개 이상일 때 사용
java
if (조건식1) {
// 조건1이 참이면
명령문1;
} else if (조건식2) {
// 조건2가 참이면
명령문2;
} else if (조건식3) {
// 조건3이 참이면
명령문3;
} else {
// 위의 모든 조건이 거짓이면
명령문4;
}
실행 순서
1. 첫 번째 조건 확인 (초록불?) → 거짓
2. 두 번째 조건 확인 (노란불?) → 참
3. 세 번째는 검사하지 않음 (이미 참을 찾았기 때문)
4. 나머지도 건너뜀
SWITCH 문
하나의 값을 여러 경우와 비교할 때 깔끔하게 쓸 수 있다.
```java
switch (값) {
case 값1:
// 값이 값1이면 실행
명령문1;
break; // 여기서 탈출!
case 값2:
// 값이 값2이면 실행
명령문2;
break;
default:
// 위의 경우 중 하나도 아니면
명령문3;
}
```java
int 과목 = 1;
switch (과목) {
case 1:
System.out.println("국어입니다"); // ✅ 실행됨
break;
case 2:
System.out.println("수학입니다");
break;
case 3:
System.out.println("영어입니다");
break;
default:
System.out.println("뭐지?");
}
BREAK 문 중요
fall-through 현상이라고 해요.
break가 있으면?
```java
case 1:
System.out.println("1입니다");
break; // ✅ 여기서 탈출
case 2:
System.out.println("2입니다");
break;
// 출력 결과:
// 1입니다
equals() vs == 의 차이
문자열(String)은 반드시 equals() 사용!
// ✅ 맞는 표현
if (신호.equals("초록불")) { // 올바름
}
```
숫자는 == 사용
```java
int 나이 = 10;
if (나이 == 10) { //
System.out.println("10살입니다");
}
```
조건문이란?
프로그램에게 "만약에...라면...해" 라고 명령
중요 개념
- if-else: 둘 중 하나만 실행
- else-if: 첫 번째 참이 실행
- switch: 값 비교용 (조건식 X)
반복문
반복문의 세 가지 종류
for 문 → "정확히 몇 번 반복할 때"
while 문 → "조건이 맞는 동안 반복할 때"
do-while 문 → "일단 한 번 하고 조건 확인할 때"
특수 명령어
break → 반복을 즉시 종료
continue → 이번 회차만 건너뛰기 (스킵 버튼 )
반복문이 없으면?
컴퓨터에게 "안녕하세요!"를 5번 출력하라고 하면:
```java
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
```
반복문이 있으면?
```java
for (int i = 1; i <= 5; i++) {
System.out.println("안녕하세요!");
}
```
반복문의 세 가지 방식
for 문 - 정확히 몇 번인지 알 때 가장 자주 씀
ex)
- "5번 반복해"
- "1부터 10까지 반복해"
- "버튼을 3번 누르기"
특징
`int i = 1` | 1부터 시작
`i <= 5` 5까지 계속
`i++` 매번 1씩 증가
`{ }` 안의 코드 반복할 명령들
while 문- 정확한 횟수는 모를 때
```java
int i = 1;
while (i <= 5) {
System.out.println(i + "번째 손님, 안녕하세요");
i++; //이걸 빼면 무한루프
}
조건만 확인 :f or처럼 시작, 증가 구조가 없음
유연함 : 조건이 언제 false가 될지 몰라도 됨
위험함 :`i++` 빼먹으면 무한루프
---
do-while 문
- 게임을 일단 한 판 한 다음, 할래? 라고 물어보기
- ATM에서 일단 인출하고, 또 할래? 라고 물어보기
- 메뉴판을 일단 보여준 다음, 또 주문할래? 물어보기
구조:
```java
int i = 1;
do {
System.out.println("안녕하세요!");
i++;
} while (i <= 5);
break vs continue:
break - continue
반복 종료 - 이번만 건너뛰기
반복 탈출 - 계속 반복함*
ex) 게임 종료 - 이 문제 스킵
for vs while 뭘 써야하지?
반복 횟수를 정확히 알고 있으면 for, 조건으로만 판단하면 while
- for: "10번 반복" ✅ 명확함
- while: "비가 올 때까지" ✅ 언제 끝날지 모름
무한루프?
```java
// ❌ 잘못된 코드 - 무한루프!
while (i <= 10) {
System.out.println(i);
// i++가 없어서 i가 영원히 1로 남음
}
// ✅ 올바른 코드
while (i <= 10) {
System.out.println(i);
i++; // 이 줄이 꼭 필요함.
}
|반복문 | 언제 쓸까 | 특징 |
| or | 정확한 횟수 알 때 | for (시작; 조건; 증가) |
| while | 조건으로만 판단할 때 | while (조건) - 증가식 직접 작성 |
| do-while | 일단 한 번은 해야 할 때 | do { } while (조건) |
| break | 반복을 끝내고 싶을 때 | 즉시 반복 탈출 |
| continue| 이번만 건너뛰고 싶을 때 | 다음 회차로 진행 |
특강들도 다른 여러 영상에서도 강의만으로 자바를 배우는 것엔 한계가 있다고 한다.
자바 또한 "컴퓨터" 언어를 배우는 것인 만큼 내가 직접 많이 쓰고 많이 읽어봐야 는다고 생각한다.
피곤하고 어렵더라도 포기만 하지않고 계속해서 정진해야겠다...
'Camp > Java 문법 종합' 카테고리의 다른 글
| [TIL] : 배열(Array) & 메서드(Method) & 계산기 과제에서의 트러블 슈팅 (0) | 2026.06.24 |
|---|---|
| [TIL] 입출력, 연산자 (0) | 2026.06.08 |
| [TIL] 자바 프로젝트 관리와 변수 (0) | 2026.06.05 |
| [TIL] 자바 입문 (자바의 기초와 메모리 이해) (0) | 2026.06.02 |