✅ 4. 반복문 (for, while, do-while)
반복문은 주어진 조건을 만족할 때까지 코드 블록을 실행하는 구조.
코딩테스트에서는 반복문을 활용해 배열 탐색, 조건 검토 등을 함.
📍 1) for문 (반복 횟수가 정해져 있을 때)
기본 구조
for (초기값; 조건식; 증감식) {
// 반복 실행할 코드
}
예제: 1부터 5까지 출력
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
}
📌 실행 결과:
1
2
3
4
5
➡ 초기값 i = 1 → 조건 i <= 5 만족 → 실행 → i++ 증가 후 다시 실행
➡ 조건이 false가 될 때까지 반복
📍 2) while문 (반복 횟수가 정해지지 않았을 때)
- 조건이 참(true)인 동안 반복 실행
- 조건이 만족하지 않으면 처음부터 실행되지 않을 수도 있음
기본 구조
while (조건식) {
// 반복 실행할 코드
}
예제: 1부터 5까지 출력
public class WhileLoopExample {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println(i);
i++; // `i++` 없으면 무한 루프 발생!
}
}
}
➡ while 문은 반복 횟수를 모를 때 사용하면 좋음.
(ex. 사용자가 q를 입력할 때까지 입력 받는 경우)
📍 3) do-while문 (무조건 1번 실행 보장)
- while문과 비슷하지만 조건과 상관없이 무조건 한 번 실행하는 특징이 있음.
기본 구조
do {
// 반복 실행할 코드
} while (조건식);
예제: 1부터 5까지 출력
public class DoWhileExample {
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);
}
}
📌 차이점:
- while문: 처음부터 조건을 검사 → false면 실행 안 함
- do-while문: 최소 1회 실행 후 조건 검사
📍 4) 반복문 제어 (break, continue)
(1) break 문 (반복문 강제 종료)
- break를 만나면 반복문을 즉시 종료
- switch문에서도 사용됨
예제: i == 3이면 반복 종료
public class BreakExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // 3에서 멈춤
}
System.out.println(i);
}
}
}
📌 실행 결과:
1
2
(2) continue 문 (현재 반복만 건너뛰고 다음 반복 진행)
- continue를 만나면 아래 코드 실행하지 않고 다음 반복으로 이동
- 특정 조건일 때만 실행을 건너뛸 수 있음
예제: i == 3일 때 출력 건너뛰기
public class ContinueExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 3을 건너뜀
}
System.out.println(i);
}
}
}
📌 실행 결과:
1
2
4
5
✅ 5. 배열과 리스트 (Array, ArrayList)
배열과 리스트는 여러 개의 데이터를 저장하는 자료구조.
📍 1) 배열(Array)
- 고정 크기를 가지는 자료구조
- 선언할 때 크기를 지정해야 함
- 인덱스(0부터 시작)를 사용해 값 접근
- 배열에는 기본형(primitive type)과 참조형(reference type)을 모두 담을 수 있음.
배열 선언 및 초기화
int[] arr = new int[5]; // 크기 5인 배열 선언
int[] arr2 = {1, 2, 3, 4, 5}; // 직접 값 초기화
배열 값 변경 및 접근
arr[0] = 10; // 첫 번째 요소 변경
System.out.println(arr2[2]); // 3번째 요소 출력 (값: 3)
배열 예제: 모든 요소 출력
public class ArrayExample {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
}
}
📌 실행 결과:
10
20
30
40
50
📌 numbers.length → 배열의 크기를 반환
📍 2) 리스트(ArrayList)
- 배열은 고정 크기, 리스트는 크기가 가변적
- 요소 추가/삭제가 자유로움
- ArrayList는 import 필요 → import java.util.ArrayList;
리스트 선언 및 사용
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>(); // 리스트 생성
list.add(10); // 요소 추가
list.add(20);
list.add(30);
list.remove(1); // 인덱스 1 요소 제거 (20 제거)
System.out.println("리스트 크기: " + list.size()); // 2
for (int num : list) { // 향상된 for문
System.out.println(num);
}
}
}
📌 실행 결과:
리스트 크기: 2
10
30
배열 vs 리스트 비교
비교 | 배열(Array) | 리스트(ArrayList) |
크기 | 고정 | 가변 |
선언 | int[] arr = new int[5]; | ArrayList<Integer> list = new ArrayList<>(); |
요소 추가 | 직접 지정 (arr[0] = 10;) | list.add(10); |
요소 제거 | 불가능 | list.remove(index); |
요소 크기 확인 | arr.length | list.size() |
'Java' 카테고리의 다른 글
[Java] 기본 문법 정리 - 정렬, 스택 & 큐, 우선순위 큐, 해시맵, 해시셋 (0) | 2025.03.19 |
---|---|
[Java] 기본 문법 정리 - 문자열, 컬렉션(List, Set, Map) (0) | 2025.03.19 |
[Java] 기본 문법 정리 - 자료형과 변수, 연산자, 조건문 (0) | 2025.03.19 |
[Java] 변수 Variable (0) | 2025.03.18 |
[Java] String 비교 시 ==이 아닌 equals()를 사용해야 하는 이유 (0) | 2025.03.18 |
댓글