🌈 반복문 개요
반복문은 특정 조건을 만족하는 동안 동일한 코드 블록을 반복 실행하는 구조입니다. 자바에서는 대표적으로 for문, while문, do-while문이 있으며, 반복 구조와 조건 검사 위치에 따라 동작 방식이 달라집니다.
✈️ for문 - 반복 횟수가 정해진 경우
for문은 반복 횟수를 알고 있을 때 사용하기 적합합니다. 기본 구조는 아래와 같습니다.
조건식이 참일 때마다 블록 내 문장이 반복적으로 수행되며, 조건식이 거짓이 될 때 반복문을 탈출합니다.
for(초기화; 조건식; 증감식) {
// 조건식이 참일 때 수행될 문장을 작성합니다.
}
- for문의 구성 요소
- 초기화 : 반복문에 사용할 변수를 선언하고 초기화합니다. (반복문 실행 시 최초 1회만 수행)
- 조건식 : 반복을 계속할 조건을 설정하며, false가 되면 반복문이 종료됩니다.
- 증감식 : 반복이 실행될 때마다 변수의 값을 변경하여 조건을 만족하지 않도록 유도합니다.
for (int i = 0; i < 5; i++) {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
}
🔄 중첩 for문
for문 안에 또 다른 for문을 넣어 이중 반복을 수행할 수도 있습니다.
이 방법을 통해 다차원 배열을 순회하거나, 표 형태의 데이터를 처리할 수 있습니다.
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}
💎 while문 - 조건 기반 반복
while문은 조건식이 참(true) 일 경우 계속 반복되는 구조입니다. 반복 횟수가 불확실할 때 유용합니다.
int i = 0;
while (i < 5) {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
i++;
}
‼️무한 루프 주의
조건식이 항상 참(true)이면 반복이 종료되지 않는 무한 루프에 빠질 수 있으므로, 종료 조건을 반드시 설정해야 합니다.
🔥 do-while문 - 최소 한 번 실행 보장
do-while문은 반복문을 최소 한 번 실행하는 것이 보장되는 구조입니다.
int i = 0;
do {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
i++;
} while (i < 5);
✅ 반복문의 선택 기준
- for문 : 반복 횟수를 알고 있을 때 사용 (초기화, 조건식, 증감식 포함)
- while문 : 반복 횟수를 알 수 없고, 특정 조건을 만족할 때까지 반복해야 할 때 사용
- do-while문 : 최소 한 번은 실행이 보장되어야 할 때 사용
🤔 왜 개발자들은 while문보다 for문을 선호할까?
많은 개발자들이 반복문을 작성할 때 while문보다 for문을 선호하는 경향이 있습니다. 그 이유는 다음과 같습니다.
- 1️⃣ 코드 가독성 : for문은 반복에 필요한 모든 요소(초기화, 조건, 증감)를 한 줄에 정리해 직관적입니다.
// for문 - 한눈에 알아보기 쉽습니다.
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while문 - 요소들이 흩어져 있어 가독성이 떨어집니다.
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
- 2️⃣ 실수 방지 : for문은 반복 제어 요소들이 헤더에 모여있어 실수할 여지가 적습니다. 반면, while문은 증감식을 빼먹거나 잘못된 위치에 작성하기 쉽고, 이로 인해 무한 루프에 빠질 위험도 있습니다.
- 3️⃣ 변수 관리 효율 : for문의 초기화 변수는 반복문 내부로 스코프가 제한됩니다. 반면 while문은 반복 변수가 외부에 선언되어 메모리를 더 오래 차지하게 됩니다.
// for문의 변수 i는 반복문이 끝나면 사라짐
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while문에서는 i가 반복문 밖에서도 존재
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
System.out.println("반복문 종료 후 i의 값: " + i); // i는 여전히 존재
✨ while문이 필요한 경우
- ✅ 파일을 끝까지 읽어야 할 때 필요합니다.
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
- ✅ 사용자의 입력을 계속 받아야 할 때 필요합니다.
Scanner scanner = new Scanner(System.in);
String input;
while (!(input = scanner.nextLine()).equals("exit")) {
System.out.println("입력: " + input);
}
System.out.println("프로그램 종료");
- ✅ 특정 조건이 만족될 때까지 반복해야 할 때 필요합니다.
Random random = new Random();
int number;
do {
number = random.nextInt(10);
System.out.println("생성된 숫자: " + number);
} while (number != 7); // 7이 나올 때까지 반복
🎛️ 반복문 제어 키워드 (break & continue)
반복문은 실행 중 특정 조건에 따라 break와 continue 키워드를 사용해서 흐름을 제어할 수 있습니다.
- break : 반복문을 즉시 종료하고, 반복문 다음의 코드로 이동합니다.
- continue : 반복문의 현재 수행을 중단하고, 다음 반복으로 넘어갑니다.
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // i가 5일 때 반복문 종료
}
System.out.println("i: " + i);
}
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // i가 짝수면 다음 반복으로
}
System.out.println("i: " + i); // 홀수만 출력
}
🚀 결론
- for문 : 반복 횟수가 정해진 경우 사용
- while문 : 조건이 참이면 계속 반복, 반복 횟수를 알 수 없을 때 유용
- do-while문 : 최소 한 번 실행 보장
- break : 반복문 즉시 종료
- continue : 특정 조건에서 현재 반복 건너뛰기
자바의 반복문을 활용하면 코드의 효율성과 가독성을 높이고 다양한 문제를 해결할 수 있습니다.
'🌈 프로그래밍 언어 > 자바' 카테고리의 다른 글
[Java] 문자열 마스터하기 - String의 모든 것! (0) | 2024.09.10 |
---|---|
[Java] 자바 배열(Array) 개념 및 사용법 (0) | 2024.09.09 |
[Java] 자바 조건문(If문, Switch문) 가이드 (0) | 2024.05.19 |
[Java] 자바 연산자 Operator 가이드 정리 (0) | 2024.05.13 |
[Java] 자바 변수 기본 가이드 라인 (0) | 2024.04.05 |

🌈 반복문 개요
반복문은 특정 조건을 만족하는 동안 동일한 코드 블록을 반복 실행하는 구조입니다. 자바에서는 대표적으로 for문, while문, do-while문이 있으며, 반복 구조와 조건 검사 위치에 따라 동작 방식이 달라집니다.
✈️ for문 - 반복 횟수가 정해진 경우
for문은 반복 횟수를 알고 있을 때 사용하기 적합합니다. 기본 구조는 아래와 같습니다.
조건식이 참일 때마다 블록 내 문장이 반복적으로 수행되며, 조건식이 거짓이 될 때 반복문을 탈출합니다.
for(초기화; 조건식; 증감식) {
// 조건식이 참일 때 수행될 문장을 작성합니다.
}
- for문의 구성 요소
- 초기화 : 반복문에 사용할 변수를 선언하고 초기화합니다. (반복문 실행 시 최초 1회만 수행)
- 조건식 : 반복을 계속할 조건을 설정하며, false가 되면 반복문이 종료됩니다.
- 증감식 : 반복이 실행될 때마다 변수의 값을 변경하여 조건을 만족하지 않도록 유도합니다.
for (int i = 0; i < 5; i++) {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
}
🔄 중첩 for문
for문 안에 또 다른 for문을 넣어 이중 반복을 수행할 수도 있습니다.
이 방법을 통해 다차원 배열을 순회하거나, 표 형태의 데이터를 처리할 수 있습니다.
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}
💎 while문 - 조건 기반 반복
while문은 조건식이 참(true) 일 경우 계속 반복되는 구조입니다. 반복 횟수가 불확실할 때 유용합니다.
int i = 0;
while (i < 5) {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
i++;
}
‼️무한 루프 주의
조건식이 항상 참(true)이면 반복이 종료되지 않는 무한 루프에 빠질 수 있으므로, 종료 조건을 반드시 설정해야 합니다.
🔥 do-while문 - 최소 한 번 실행 보장
do-while문은 반복문을 최소 한 번 실행하는 것이 보장되는 구조입니다.
int i = 0;
do {
System.out.println("i의 값: " + i); // 0부터 4까지 출력
i++;
} while (i < 5);
✅ 반복문의 선택 기준
- for문 : 반복 횟수를 알고 있을 때 사용 (초기화, 조건식, 증감식 포함)
- while문 : 반복 횟수를 알 수 없고, 특정 조건을 만족할 때까지 반복해야 할 때 사용
- do-while문 : 최소 한 번은 실행이 보장되어야 할 때 사용
🤔 왜 개발자들은 while문보다 for문을 선호할까?
많은 개발자들이 반복문을 작성할 때 while문보다 for문을 선호하는 경향이 있습니다. 그 이유는 다음과 같습니다.
- 1️⃣ 코드 가독성 : for문은 반복에 필요한 모든 요소(초기화, 조건, 증감)를 한 줄에 정리해 직관적입니다.
// for문 - 한눈에 알아보기 쉽습니다.
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while문 - 요소들이 흩어져 있어 가독성이 떨어집니다.
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
- 2️⃣ 실수 방지 : for문은 반복 제어 요소들이 헤더에 모여있어 실수할 여지가 적습니다. 반면, while문은 증감식을 빼먹거나 잘못된 위치에 작성하기 쉽고, 이로 인해 무한 루프에 빠질 위험도 있습니다.
- 3️⃣ 변수 관리 효율 : for문의 초기화 변수는 반복문 내부로 스코프가 제한됩니다. 반면 while문은 반복 변수가 외부에 선언되어 메모리를 더 오래 차지하게 됩니다.
// for문의 변수 i는 반복문이 끝나면 사라짐
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// while문에서는 i가 반복문 밖에서도 존재
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
System.out.println("반복문 종료 후 i의 값: " + i); // i는 여전히 존재
✨ while문이 필요한 경우
- ✅ 파일을 끝까지 읽어야 할 때 필요합니다.
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
- ✅ 사용자의 입력을 계속 받아야 할 때 필요합니다.
Scanner scanner = new Scanner(System.in);
String input;
while (!(input = scanner.nextLine()).equals("exit")) {
System.out.println("입력: " + input);
}
System.out.println("프로그램 종료");
- ✅ 특정 조건이 만족될 때까지 반복해야 할 때 필요합니다.
Random random = new Random();
int number;
do {
number = random.nextInt(10);
System.out.println("생성된 숫자: " + number);
} while (number != 7); // 7이 나올 때까지 반복
🎛️ 반복문 제어 키워드 (break & continue)
반복문은 실행 중 특정 조건에 따라 break와 continue 키워드를 사용해서 흐름을 제어할 수 있습니다.
- break : 반복문을 즉시 종료하고, 반복문 다음의 코드로 이동합니다.
- continue : 반복문의 현재 수행을 중단하고, 다음 반복으로 넘어갑니다.
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // i가 5일 때 반복문 종료
}
System.out.println("i: " + i);
}
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // i가 짝수면 다음 반복으로
}
System.out.println("i: " + i); // 홀수만 출력
}
🚀 결론
- for문 : 반복 횟수가 정해진 경우 사용
- while문 : 조건이 참이면 계속 반복, 반복 횟수를 알 수 없을 때 유용
- do-while문 : 최소 한 번 실행 보장
- break : 반복문 즉시 종료
- continue : 특정 조건에서 현재 반복 건너뛰기
자바의 반복문을 활용하면 코드의 효율성과 가독성을 높이고 다양한 문제를 해결할 수 있습니다.
'🌈 프로그래밍 언어 > 자바' 카테고리의 다른 글
[Java] 문자열 마스터하기 - String의 모든 것! (0) | 2024.09.10 |
---|---|
[Java] 자바 배열(Array) 개념 및 사용법 (0) | 2024.09.09 |
[Java] 자바 조건문(If문, Switch문) 가이드 (0) | 2024.05.19 |
[Java] 자바 연산자 Operator 가이드 정리 (0) | 2024.05.13 |
[Java] 자바 변수 기본 가이드 라인 (0) | 2024.04.05 |