본문 바로가기

Language/JAVA

[JAVA] 제어문 (2) - 반복문 for, for-each, while, do-while

JAVA 제어문(2) - 반복문 for, for-each, while, do-while

자바의 제어문인 조건문, 반복문 중 반복문 for, for-each,  while, do-while 에 대해 알아봅니다.
 


 

반복문

특정 로직을 반복해서 실행해야 하는 경우 사용합니다.
for, for-each, while, do-while문
 

for 반복문

특정 조건을 만족할 때까지 블럭 내의 로직을 반복 실행합니다.

for (A; B; C) {
	// 반복 실행할 로직
}
  • A : 내부의 로직이 실행되기 전 최초 한번 실행되는 구문입니다.
    보통 for 문 내부에서 사용할 변수를 선언 및 초기화하는 구문이 사용됩니다.
  • B : 반복이 끝날 조건을 정의합니다.
    B가 참일때까지 반복합니다.
  • C : 내부 로직이 반복 실행된 후 마지막에 실행되는 구문입니다.
    보통 증감식을 사용합니다.
// for 내부에서만 사용되는 변수 i 선언
// i < 10 == false 일때까지 반복
// 매번 로직이 끝나면 i 증가
for (int i = 0; i < 10; i += 1) {
	System.out.println(i + "번째");
}

 
for 문 내부에서 특정 경우에 반복을 끝까지 실행하지 않고 빠져나가고 싶은 경우, break 키워드를 사용합니다.

for (int i = 0; i < 5; i += 1) {
	if (i % 4 == 0) {	// i가 4의 배수이면 나가기
    	break;
    }
    
    System.out.println("index " + i);
}

 
특정 경우에는 다음 로직을 실행하지 않고 넘어가고 싶다면, continue 키워드를 사용합니다.
continue 키워드를 만나면 for문은 그 아래 로직들을 실행하지 않고 다음 반복을 실행합니다.

for (int i = 0; i < 5; i += 1) {
	if (i % 2 != 0) {
    	continue;
    }
    System.out.println(i + "는 2의 배수입니다.");
}

 
for문 안에 또다른 for문을 중첩하여 사용할 수 있습니다.

하지만 잘못하면 루프 지옥...

// 총 5 * 3 = 15회 실행
for (int i = 0; i < 5; i += 1) {
	for (int j = 0; j < 3; j += 1) {
    	System.out.println(i + " " + j);
    }
}

 

for-each 반복문

배열 데이터를 모두 방문하는 for 반복문을 사용하려면 이렇게 해야합니다.

int[] arr = {1, 3, 5, 7, 9};
for (int i = 0; i < arr.length; i += 1) {
	System.out.println(arr[i]);
}

 
배열의 각 index는 사용하지 않고 배열 요소들만 사용한다면, for-each 반복문으로 간소화할 수 있습니다.

for (배열 요소 받을 변수 : 배열) {

}
int[] arr = {1, 3, 5, 7, 9};
for (int i : arr) {
	System.out.println(i);	// 1 3 5 7 9
}

 


 

while 반복문

반복문 내부에서 특별히 사용할 변수가 없다면, 반복을 중단할 조건문만 정의한 반복문 while을 사용할 수 있습니다.

while (조건) {

}

while은 반복문 진입시 특정 조건이 만족하는지/아닌지만 판단하고, 만족하면 계속 반복합니다.

int sum = 0;
while (sum < 100) {	// sum < 100 일 때까지 반복
	sum += 10;
}

 

do-while 반복문

while 문과 비슷하게지만, do-while은 최초 1번은 무조건 실행하는 반복문입니다.

do {
	
} while (조건);

진입하여 최초 실행 후 조건을 판단합니다.

boolean isBreak = false;
do {
	System.out.println("실행");
} while (isBreak);

실무에서는 별로 안쓰이는 구문이긴 함..

728x90