카테고리 없음

[ JAVA ] 기본 문법 - 반복문

HUIcode 2024. 10. 19. 19:42

 

반복문 : 특정 코드를 반복해서 실행

  1. while문
  2. do-while문
  3. for문

while문 : 조건문이 참일 동안 반복해서 실행

while (condition) {

}

do-while문 : while문과 유사하나 조건에 상관없이 무조건 한 번은 코드를 실행

do {
	//실행할 코드
} while (조건식);

break, continue : 반복문에서 사용할 수 있는 키워드

break : 반복문을 즉시 종료하고 빠져나옴

continue : 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행함

continue 키워드

1부터 5까지 숫자를 출력하는데, 숫자가 3일 때는 출력을 건너뜀

package loop;
public class Continue1 {
	public static void main(String[] args) {
    	int i = 1;
		while (i <= 5) {
			if (i == 3) {
				i++;
				continue;
			}
			System.out.println(i);
			i++; 
		}
	}
}

 

for문 : 주로 반복 횟수가 정해져 있을 때 사용

for (초기식 ; 조건식; 증감식){

}

 

초기식, 조건식, 증감식은 모두 선택임. 모두 생략 가능함. 생략하더라도 세미콜론(;)은 작성해야 함.

 


for each문 : for each 문은 J2SE 5.0부터 추가됨. for each라는 키워드가 따로 있는 것은 아니고 앞서 배운 for 문을 이용함. 하지만 조건문의 문법이 조금 다름

for (type 변수명: iterate) {

}

: iterate는 루프를 돌릴 객체이고 iterate 객체에서 한 개씩 순차적으로 변수명에 대입되어 for 문이 수행된다. iterate에 사용할 수 있는 자료형은 루프를 돌릴 수 있는 자료형(배열이나 ArrayList 등)만 가능함. 그리고 변수명의 type(자료형)은 iterate 객체에 포함된 자료형과 일치해야 함.

 

다음은 ArrayList로 구현한 예제이다. for 문의 사용법은 String[] 배열을 사용했을 때와 동일하다.

import java.util.ArrayList;
import java.util.Arrays;

public class Sample {
    public static void main(String[] args) {
        ArrayList<String> numbers = new ArrayList<>(Arrays.asList("one", "two", "three"));
        for (String number : numbers) {
            System.out.println(number);
        }
    }
}

 

단, for each 문은 따로 반복 횟수를 명시적으로 주는 것이 불가능하고, 한 단계씩 순차적으로 반복할 때만 사용이 가능하다는 제약이 있음.

 

for-each문 장점

  • for-each문은 반복자나 인덱스 변수를 사용하지 않아 코드가 깔끔해지고, 오류가 발생할 일도 없음
  • 하나의 관용구로 컬렉션과 배열 모두 처리할 수 있어, 어떤 컨테이너를 사용하는지 신경쓰지 않아도 됨

  • for-each문을 사용하는 것은 for문을 사용하는 것과 속도가 같음

  • 컬렉션을 중첩해 사용한다면, 실수를 예방할 수 있음