코드들을 반복적으로 실행되도록 하고싶을 때 반복문을 사용하면 된다. 반복문의 종류는 for, while, do-while문이 있다. 반복문은 서로 변환이 가능하지만 목적에 맞게 사용하는게 좋다.
for
반복문(loop) 중 하나로, 일정한 횟수만큼 반복하여 작업을 수행할 때 사용한다.
/* for (초기화; 조건식; 증강식) {
반복해서 실행할 코드
}
*/
int sum = 0;
for (int num = 1; num <= 10; num++) {
sum += num;
}
System.out.println(sum); // 1 + 2 + 3 + 4 + ... + 10 = 55
- 초기화: for 문이 시작할 때 최초 한 번만 수행되며 사용할 변수를 초기화한다.
- 조건식: 반복문의 조건을 설정한다. 조건식이 참(true)이면 반복하고, 거짓(false)이면 반복을 중단한다.
- 증감식: 반복 횟수를 결정하는 규칙으로 반복문이 한 번 실행될 때마다 변수를 증가 또는 감소 시킨다.
Enhanced for
배열이나 컬렉션 객체의 모든 요소를 순차적으로 접근하는 반복문이다. 기존의 for 문과 다르게 인덱스 변수를 사용하지 않아도 되므로 코드가 간결하다는 장점이 있다.
// enhanced for example
for (타입 변수명 : 배열 또는 컬렉션) {
// 반복해서 실행할 코드
}
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int num : numbers) {
sum2 += num;
}
System.out.println(sum);
while
while문은 for문과 다르게 조건식이 true일 경우에 계속해서 반복되며 for문과 while문은 초기화, 증감식의 위치만 다를 뿐 상호 대체가 가능하다
(초기화);
while(조건식) {
실행문; //조건식이 참인 동안 실행
증감식;
}
// 위의 for문 예제를 while문으로 바꾸면 아래와 같고 결과 값도 55로 동일하다
int num = 1;
int sum = 0;
while(num <= 10) {
sum += num;
num++;
}
System.out.println(sum);
- 조건식에서 true/false 값을 산출하는 어떠한 연산식이든 올 수 있지만 무한 루프에 빠질 수 있다. 무한 루프를 방지하기 위해 while문을 탈출할 수 있는 조건문이나 break 키워드를 사용해야 한다.
do-while
while문과 비슷하지만, while문과 차이점은 조건식을 마지막에 검사한다는 차이점이 있다. 즉, 조건식이 참(true)인 동안 반복하여 작업을 수행하고, 반복이 끝난 후 조건식을 검사한다.
do {
// 반복해서 실행할 코드
} while (조건식);
int num;
Scanner scanner = new Scanner(System.in);
do {
System.out.print("숫자를 입력하세요(1~10): ");
num = scanner.nextInt();
} while (num < 1 || num > 10);
System.out.println(num + "을 입력했습니다.");
break & continue
break
반복문의 실행을 중지할 때 사용되며 switch 에서도 break를 사용하여 switch문을 탈출할 수 있다.
만약, 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문에는 영향을 끼치지 않는다.
for (int i = 1; i <= 5; i++) {
for (int j = 5; j > 0; j--) {
System.out.println("i " + i + " j "+ j);
if (j == 3) {
break;
}
}
}
/*
output
i 1 j 5
i 1 j 4
i 1 j 3
i 2 j 5
i 2 j 4
i 2 j 3
i 3 j 5
i 3 j 4
i 3 j 3
i 4 j 5
i 4 j 4
i 4 j 3
i 5 j 5
i 5 j 4
i 5 j 3
*/
Outer : for (int i = 1; i <= 5; i++) {
for (int j = 5; j > 0; j--) {
System.out.println("i " + i + " j "+ j);
if (j == 3) {
break Outer;
}
}
}
/*
output
i 1 j 5
i 1 j 4
i 1 j 3
*/
continue
반복문에서만 사용되며 블록 내부에서 continue가 샐행되면 for문의 증감문 혹은 while, do-while문의 조건식으로 이동하여 작동한다. break문과 차이점은 반복문 종료 여부이다. continue는 반복문을 종료하지 않고 다음 차례로 넘어가 계속 반복을 수행한다. break문과 continue문은 보통 if문과 함께 사용한다.
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) { // 짝수이면 넘어감
continue;
}
System.out.print(i);
}
/*
output
13579
*/
'etc. > Code_SEB_BE' 카테고리의 다른 글
[SEB_BE / Day 8] Java 기초(4) 배열 (0) | 2023.04.20 |
---|---|
[SEB_BE / Day 5] Java(1) 기초 변수, 타입 (0) | 2023.04.17 |
[SEB_BE / Day 4] Git 기초 (0) | 2023.04.16 |
[SEB_BE / Day 3] Linux 기초 (0) | 2023.04.14 |
[SEB_BE / Day 2] Development 기초 (1) | 2023.04.13 |