자바의 제어문인 조건문, 반복문 중 반복문 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);
실무에서는 별로 안쓰이는 구문이긴 함..
'Language > JAVA' 카테고리의 다른 글
[JAVA] 메소드(method) 정의 및 사용하기 (21) | 2024.03.27 |
---|---|
[JAVA] 배열(array), 다차원배열(nested array)과 특징 (1) | 2024.03.26 |
[JAVA] 제어문 (1) - 조건문 if-else, switch-case (22) | 2024.03.24 |
[JAVA] 간단한 Hello World 프로젝트 만들기 with IntelliJ (15) | 2024.03.23 |
[JAVA] 데이터 타입(Date Type), 상수(Constance)와 리터럴(Literal) (23) | 2024.03.22 |