반복문

반복문은 코드들이 반복적으로 실행되도록 할 때 사용됩니다.

for loop

다음과 같은 형태입니다.

public class Main {
  public static void main(String[] args) {
    int sum = 0;
    // for (초기화; 조건식; 증감식)
    for(int num = 0; num < 10; num++) {	
      sum += num;
    }
    System.out.println(sum); // 1~9의 합인 45가 출력됩니다.
  }
}

for 안에는 초기화, 조건식, 증감식으로 구성됩니다.

  • 초기화for문이 시작할 때 최초 한 번만 수행되며, 사용할 변수의 초깃값을 정합니다.
  • 조건식은 계속 반복할지 여부를 결정하는 조건입니다. 조건식 안의 값이 true라면 실행문을 실행시키고, false라면 더 이상 블록을 실행하지 않고 끝납니다.
  • 증감식은 반복 횟수를 결정하는 규칙입니다. 변수에 값을 더하거나 곱하는 등 수행 방식을 지정합니다. ++ 은 반복문에서 자주 쓰는 증감연산자로, 피연산자의 값을 1 증가시킵니다.

Enhanced for loop

향상된 for 문은 컬렉션 객체를 더 쉽게 처리할 목적으로 사용합니다. 다음과 같은 형태입니다.

public class EnhancedForLoop {
  public static void main(String[] args) throws Exception {
    String[] names = {"kimcoding", "javalee", "ingikim"};
    for(String name : names) {
      System.out.println(name + "님은 자바를 공부중 입니다.");
    }
  }
}
/*
kimcoding님은 자바를 공부중 입니다.
javalee님은 자바를 공부중 입니다.
ingikim님은 자바를 공부중 입니다.
*/

while loop

while문은 조건식이 true일 경우에 계속해서 반복합니다.

int num = 0, sum = 0;
while(num <= 10) {
  sum += num;
  num++;
}
System.out.println(sum);
//output : 55

do-while loop

do-while loop 문은 while 문과 동일하지만, 실행문을 1번은 실행시킨 뒤 그 결과에 따라 while 문을 반복 실행합니다.

import java.util.Scanner;

public class Main {
  public static void main(String args[]){
    int input = 0, randomNum = 0;

      randomNum = (int)(Math.random() * 10) + 1; // 1 ~ 10 임의의 수를 생성
      Scanner scanner = new Scanner(System.in);

      do{
        System.out.println("1과 10 사이의 정수를 입력하세요");
        input = scanner.nextInt();

        if(input > randomNum) {
          System.out.println("더 작은 정수를 입력하세요");
        } else if (input < randomNum) {
          System.out.println("더 큰 정수를 입력하세요");
        }
      } while(input != randomNum);
      System.out.println(randomNum +" 정답입니다!");
  }
}

break 문

break문은 반복문인 for문, while문, do-while문을 실행 중지할 때 사용됩니다.

다음과 같이 반복문이 중첩되어 있을 경우 레이블을 사용하여 바깥쪽 반복문도 빠져나올 수 있습니다.

public class Main {
    public static void main(String[] args) {
        Outer : for (int i = 3; i < 10; i++) {
            for (int j = 5; j > 0; j--) {
                System.out.println("i " + i + " j "+ j);
                if (i == 5) {
                    //Outer 문을 break
                    break Outer;
                }
            }
        }
    }
}
/*
i 3 j 5
i 3 j 4
i 3 j 3
i 3 j 2
i 3 j 1
i 4 j 5
i 4 j 4
i 4 j 3
i 4 j 2
i 4 j 1
i 5 j 5
*/

continue 문

continue문은 반복문인 for문, while문, do-while문에서만 사용되는데, 블록 내부에서 continue문이 실행되면 for문의 증감문 혹은 while, do-while문의 조건식으로 이동하여 작동합니다.

continue문과 break문의 차이점은 반복문 종료 여부입니다. continue문은 반복문을 종료하지 않고 다음 차례로 넘어가 계속 반복을 수행합니다.

다음과 같이 사용합니다.

public class Main {
    public static void main(String[] args) throws Exception {
        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) { //나머지가 0일 경우는
                continue; //다음 반복으로 넘어간다.
            }
            System.out.println(i); //홀수만 출력
        }
    }
}
/*
1,3,5,7,9
*/

break 문과 마찬가지로 라벨을 통해 이중 for 문에서 바깥쪽 for 문으로 돌아갈 수 있습니다.

public class Main {
    public static void main(String[] args) {
        Outer : for (int i = 0; i < 3; i++) {
           for(int j = 0; j < 3; j++) {
               if (i == j) {
                   continue Outer;
               }
               System.out.println(i + "," + j);
           }
        }
    }
}
/*
1,0
2,0
2,1
*/

댓글남기기