-
Notifications
You must be signed in to change notification settings - Fork 1
Day 07(21.09.08)
어떤 작업(코드들)이 반복적으로 실행되도록할 때 사용된다.
반복문의 종류로는 for문, while문, do-while문이 있다. 이 중 for문과 while문은 서로 변환이 가능하다. 둘의 차이점은
for문은 반복 횟수를 알고 있을 때 주로 사용하며, while문은 조건에 따라 반복할 때 주로 사용한다.
do-while의 경우, while문과는 조건을 먼저 검사하느냐, 나중에 검사하느냐의 차이만 있고 동작 방식은 동일하다.
int sum = 0; // sum 변수의 값을 0으로 초기화
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
sum = sum + 5;
System.out.println("1~5까지의 합: " + sum);1에서 5까지의 합을 구할 때는 위의 코드를 사용해도 좋지만, 만약 10까지, 100까지의 합을 구할 경우에는 코드가 끝도 없이 늘어나게 된다.
이런 경우에 아래와 같이 for문을 사용하면 아주 효과적이다.
// 1~100의 합계는? 이 질문에서 반복문을 몇 번이나 사용할지 파악할 수 있으므로 for문을 사용한다.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println("1~100까지의 합: " + sum);for (초기화식; 조건식; 증감식) {
**실행문**
}초기화식 → 조건식 → 실행문 → 증감식 → 조건식 → ...for문의 실행될때, 초기화식이 제일 먼저 실행된 후, 조건식의 결과가 true면 실행문을 실행시키고 false면 블록이 실행되지 않고 for문이 종료된다.
실행문이 실행되면 증감식이 실행되고, 이를 바탕으로 다시 조건식을 평가한다.
이를 바탕으로 위의 식을 다시 살펴보면 다음과 같다.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println("1~100까지의 합: " + sum);- int 1 = 1이라는 초기 값이 설정된다.
- 조건식(i는 100 이하인가?)의 결과가 true인지 확인한다.
- sum=0으로 초기화된 sum에 i를(이 단계에선 초기값 1) 더한다.
- 증감식(i++)이 실행된다.
- 증감식이 실행된 뒤에 다시 조건식의 결과가 true인지 확인한다. 초기값 1이 증감식을 거쳐 2가 됐으므로 조건식의 값이 true이다.
- 실행문이 다시 실행된다. (0 + 1 + 2가 되는 것)
이렇게 i가 100이 될때까지 위 식이 반복된다. 101이 되는 순간 조건식(i가 100 이하인가?)의 결과가 false가 되므로 for문이 종료된다.
for문은 또 다른 for문을 내포할 수 있는데 이것을 중첩 for문이라고 한다.
이 경우 바깥쪽 for문이 한 번 실행될 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가
다시 바깥쪽 for문으로 돌아가 반복문을 실행한다.
출력 결과
zzzz
zzz
zz
z
위와 같은 결과를 출력하는 중첩 for문은 다음과 같다.
작동 방식은 다음과 같다.
for (int k = 4; k > 0; k--) {
for (int l = 0; l < k; l++) {
System.out.print("z");
}
System.out.println("");
}1.
*
*
**
**
***
2.
*
*
*
*
*
3.
*
*
*
*
*
코드는 Code 탭에 작성함
for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속해서 반복된다.
조건식에는 비교 또는 논리 연산식이 주로 오는데, 조건식이 false가 되면 반복을 멈추고 while문을 종료한다.
아래는 while문의 형식과 실행 흐름이다.
while(조건식) {
실행문;
}조건식 → 실행문 → 조건식 → ...
while문이 처음 실행될 때 조건식을 평가하고, 평가 결과가 true면 실행문을 실행한다.
실행문이 전부 실행되면 다시 조건식으로 돌아가 조건식을 평가한다.
for 문단에서 예시로 들은 1~100 까지의 합을 while문으로 작성하면 다음과 같다.
int sum = 0;
int i = 1;
while(1<=100) {
sum = sum + i;
i++
}
System.out.println("1~100의 합: " + sum);주의해야 할 부분은, while문 내에서 계속 누적되는 값을 갖는 변수(sum)는 while문 시작전에 미리 선언해야한다.