Java의 반복문
Java의 반복문의 종류는 대표적으로 for문, while문, do-while문 이 있다.
📍for문
반복적인 작업을 수행할 때 제어하기 위한 문
- 특정 조건이 만족되는 동안 코드 블록을 반복 실행하는데 사용된다.
- 반복 횟수가 명확하거나 배열 및 컬렉션 등의 데이터 구조를 순회할 때 사용된다.
for(초기화식(=카운터 변수); 조건식; 증감식){
}
for(int i = 0; i < 5; i++){
System.out.println(i);
}
향상된 for문(enhanced for loop)
주로 배열이나 컬렉션의 모든 요소를 순회할 때 사용하는 for문
for (타입 변수명 : 순회할 배열 또는 컬렉션) {
}
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
List<String> fruits = Arrays.asList("Apple", "Banana", "Cherry");
for (String fruit : fruits) {
System.out.println(fruit);
}
향상된 for문의 장점😀
- 기본 for문에 비해 구조가 단순하고 사용자가 이해하기 쉬워서 가독성이 올라간다.
- 인덱스를 사용하여 배열이나 컬렉션에 직접 접근하는 것이 아니기 때문에 IndexOutOfBoundsException의 오류를 줄일 수 있다.
- 인덱스를 관리할 필요가 없으므로, 컬렉션의 크기를 명시적으로 계산할 필요가 없어 코드가 간결해진다.
향상된 for문의 단점🥲
- 향상된 for문을 순회하는 동안에는 배열이나 컬렉션의 요소를 추가하거나 삭제가 어렵다.
- 인덱스를 직접 제공하지 않는다.
for문을 사용하는 이유는?🤔
- 반복적인 작업에 자동화가 가능하다!
- 코드의 가독성이 향상된다!
- 컬렉션과 배열처리를 쉽게 할 수 있다!
- 반복 횟수를 제어할 수 있다!
- 효율적으로 자원을 관리할 수 있다!
📍while 문
조건이 'true'인 동안 코드 블록을 반복 실행하는 반복문
- 반복 횟수가 불명확하거나 무한 반복이 필요할 때 사용된다.
while(조건식){
}
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
while문의 장점😀
- 조건을 기반으로 반복한다
- 조건이 참(true)인 동안 반복 실행되므로, 반복 횟수가 불명확한 상황에서 유용하다.
- 조건 검사를 먼저 수행한다
- 코드 블록을 실행하기 전에 조건을 검사하기 때문에 조건이 처음부터 거짓(false)인 경우 코드 블록이 한 번도 실행되지 않는 상황을 제어할 수 있다.
while문의 단점🥲
- 최소 실행의 보장이 없다
- 조건이 처음부터 거짓인 경우, 반복문 내의 코드가 단 한 번도 실행되지 않는다.
- 조건을 관리해야 한다
- 반복문 내에서 조건을 적절히 관리하지 못하면 무한 루프에 빠질 위험이 있다.
while문을 사용하는 이유는?🤔
- 조건을 기반으로 반복한다.
- 반복 횟수가 명확하지 않거나 특정 조건을 만족하는 동안 반복할려고 할때 while문을 사용한다.
- 무한 루프를 구현할 수 있다.
- 프로그램이 사용자의 입력을 기다리거나 서버가 클라이언트의 요청을 기다리는 등의 무한히 실행되어야 하는 상황에서 while문을 사용한다.
- 조건 검사를 통해 반복문 전 수행이 가능하다.
- while문이 반복문에 진입하기 전 조건을 검사하고, 조건이 처음부터 false일 경우 반복문 내 코드는 한번도 실행이 되지 않게 할 수 있다.
📍do-while문
최소 한 번은 코드 블록을 실행한 후 조건을 검사하는 반복문
- 조건이 처음부터 false일지라도 코드 블록이 최소 한 번은 실행된다.
do{
}while();
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 10);
do-while문의 장점😀
- 최소 한 번의 실행이 보장된다
- do-while문은 최소 한 번은 반복문 내의 코드를 실행한 후 조건을 검사하기 때문에, 사용자 입력을 받아 처리해야 하는 상황에서 유용하다.
- 사용자 인터랙션에 적합하다.
- 사용자로부터 유효한 입력을 받을 때까지 반복하려는 경우에 적합하다.
do-while문의 단점🥲
- 조건 검사가 지연된다
- 반복문의 끝에서 조건을 검사하기 때문에, 조건이 거짓임에도 불구하고 코드 블록이 최소 한 번은 실행된다. 이는 원치 않는 실행을 초래할 수 있다.
- 조건 관리가 필요하다
- while문과 마찬가지로, do-while문 역시 조건을 적절히 관리하지 않으면 무한 루프의 위험이 있다.
do-while문을 사용하는 이유는?🤔
- 최소 한 번의 실행이 보장된다
- do-while문은 조건 검사를 반복문의 마지막에 수행하기 때문에, 조건의 참/거짓 여부와 관계없이 반복문 내 코드가 최소 한 번은 실행된다.
- 이는 사용자로부터 입력을 받고 검증해야 할 때 유용하다.
- 사용자 입력과 상호작용이 가능하다.
- 프로그램이 사용자의 입력을 받아 처리하고, 그 결과에 따라 추가 입력을 요구해야 할 경우 do-while문을 사용하여 사용자가 유효한 입력을 제공할 때까지 반복한다.
어떠한 반복문을 선택하면 될까?
- 정해진 횟수만큼 반복해야 한다면 for문
- 특정 조건을 만족할 때까지 반복해야 한다면 while문 또는 do-while문
- 배열이나 컬렉션의 모든 요소를 순회해야 한다면 향상된 for문