while
while은 반복문입니다.
if문과 비슷하게 사용할 수 있습니다. if문은 조건문이 true
인 경우에 1번만 수행합니다. while은 조건문이 true
인 동안 계속해서 수행하게 됩니다.
while은 조건문이 true
인 동안 계속해서 수행하기 때문에, 조건이 변경되지 않는다면, 계속 수행하게 되고, 이는 무한 루프에 빠지게 됩니다.
따라서! 조건문의 값(true
/false
)를 변경하는 구간이 필요합니다.
위의 소스는 1부터 10까지 정수를 차례대로 한 줄에 하나씩 출력하는 소스인데, 총 4 부분으로 이루어져 있습니다.
- 먼저, 변수를 선언하고 초기값을 정해주기 위한 초기값
- while문 속에 들어갈 조건
- 반복해서 수행해야 할 일
- while문의 조건을 변경할 수 있는 변경
마지막 경우(10을 출력한 바로 직 후)의 상황을 살펴보겠습니다.
9번줄에서 10을 출력했습니다. 이 때, i
에는 10이 들어있습니다.
10번줄에서 i++
을 이용해 i
에 들어있는 값을 11로 변경합니다.
그 다음에는 8번줄의 조건으로 돌아가게 됩니다. i
에는 11이 들어있기 때문에, i <= 10
은 false
입니다. 따라서, while문을 빠져나오게 됩니다. (12번 줄로 이동)
10부터 1까지 정수를 한 줄에 하나씩 출력하는 소스는 다음과 같습니다.
다른 점은 초기값과 조건과 변경부분입니다.
for
for는 위에서 살펴본 while을 줄여서 한 줄에 사용할 수 있습니다.
1부터 10까지, 그리고 10부터 1까지 정수를 한 줄에 하나씩 출력하는 소스를 for문을 이용해서 작성해봅시다.
for는 for(초기값; 조건; 변경)
으로 이루어져 있습니다.
위의 while에서 각각에 해당하는 한 줄을 for안에 넣었다고 생가하면 됩니다. 만약, 조건을 넣고 싶지 않은 경우에는 빈 칸으로 놔두면 됩니다.
와 같이 이루어져 있다고 한다면, 1 -> 2 -> 4 -> 3 순서대로 실행하게 됩니다. 3 이후에는 2 -> 4 -> 3을 반복하면서 조건문이 false
가 될 때까지 반복합니다.
1부터 n까지 합을 구하는 소스는 위와 같이 작성할 수 있습니다.
1부터 10까지 짝수를 출력하는 소스는 for를 이용해서 어떻게 구현할 수 있을까요?
첫 번째 방법은 2부터 2씩 증가시키면서 짝수를 출력하는 방법이 있고, 두 번째 방법은 1부터 10까지 모든 수에 대해서, 2로 나눈 나머지가 0인지 if문으로 조사해보는 방법입니다.
댓글 댓글 쓰기