while과 for

while

while은 반복문입니다.

if문과 비슷하게 사용할 수 있습니다. if문은 조건문이 true인 경우에 1번만 수행합니다. while은 조건문이 true인 동안 계속해서 수행하게 됩니다.

while은 조건문이 true인 동안 계속해서 수행하기 때문에, 조건이 변경되지 않는다면, 계속 수행하게 되고, 이는 무한 루프에 빠지게 됩니다.

따라서! 조건문의 값(true/false)를 변경하는 구간이 필요합니다.

위의 소스는 1부터 10까지 정수를 차례대로 한 줄에 하나씩 출력하는 소스인데, 총 4 부분으로 이루어져 있습니다.

  1. 먼저, 변수를 선언하고 초기값을 정해주기 위한 초기값
  2. while문 속에 들어갈 조건
  3. 반복해서 수행해야 할 일
  4. while문의 조건을 변경할 수 있는 변경

마지막 경우(10을 출력한 바로 직 후)의 상황을 살펴보겠습니다.

9번줄에서 10을 출력했습니다. 이 때, i에는 10이 들어있습니다.

10번줄에서 i++을 이용해 i에 들어있는 값을 11로 변경합니다.

그 다음에는 8번줄의 조건으로 돌아가게 됩니다. i에는 11이 들어있기 때문에, i <= 10false입니다. 따라서, 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문으로 조사해보는 방법입니다.

댓글 댓글 쓰기