[반복문]향상된 for

seni·2024년 6월 19일

JAVA

목록 보기
18/34

향상된 for문

  • 향상된 for문(Enhanced for Loop), for-each문
  • for (변수 : 배열 또는 컬렉션) { //배열 또는 컬렉션의 요소를 순회하면서 수행할 작업}
  • 배열의 인덱스를 사용하지 않고, 종료 조건을 주지 않아도 된다. 단순히 해당 배열을 처음부터 끝까지 탐색한다.
        int[] numbers = {1, 2, 3, 4, 5};

        //일반 for문
        for (int i =0; i <numbers.length; i++) {
            int number = numbers[i]; //-----numbers의 i 인덱스에 해당하는 요소를 number 변수에 저장
            System.out.println(number);
        }

        //향상된 for문, for-each문
        for (int number : numbers) { //numbers의 배열에 있는 값을 다 number 넣는다
        //처음에 1을 number에 넣고 for문 한바퀴 돌고..>numbers에 있는 두번째 값을 number에 넣고 한바퀴 돌고..
            System.out.println(number);
        }
  • : 오른쪽의 numbers와 같이 탐색할 배열을 선택하고, :의 왼쪽에 int number와 같이 반복할 때 마다 찾은 값을 저장할 변수를 선언한다. -> 배열의 값을 하나씩 꺼내서 왼쪽에 있는 number에 담고 for문을 수행한다. -> for문의 끝에 가면 다음 값을 꺼내서 number에 담고 for문을 반복 수행한다. -> numbers 배열의 끝에 도달해서 더 값이 없으면 for문이 완전히 종료된다

for-each문을 사용할 수 없는 경우

  • 인덱스 값이 감추어져 있어서, int i와 같은 증가하는 인덱스 값을 직접 출력해야 하는 경우에는 사용하지 못 함
        //증가하는 index 값 필요할 때
        for (int i=0; i < numbers.length; i++) {        //몇번의 결과인지 출력할때는 i를 써야하므로, 
            System.out.println("number" + i + "번의 결과는: " + numbers[i]);
  • 다음과 같이 사용이 가능하지만, 이런 경우 for문을 사용하는 것이 더 좋다.
int i = 0;     //for문 안에서 사용하는 변수인데, 밖에서 선언해줘야 해서 범위가 너무 넓음.
for (int number : numbers) {
	System.out.println("number" + i + "번의 결과는: " + number);
    i++
    }
profile
개발일지

0개의 댓글