첫 번째 블록
{
int i = 0;
while (i < 10)
{
cout << i << endl;
++i;
}
for (int i = 0; i < 10; ++i)
{
cout << i << endl;
}
}
while
문을 사용하여 0부터 9까지의 숫자를 출력합니다.
i
를 0으로 초기화합니다.
i
가 10보다 작을 때까지 반복합니다.
i
를 출력하고, i
를 1씩 증가시킵니다.
- 동일한 작업을
for
문을 사용하여 수행합니다.
for
문 내에서 i
를 0으로 초기화하고, i
가 10보다 작을 때까지 반복합니다.
i
를 출력하고, i
를 1씩 증가시킵니다.
- 초기화, 조건 체크, 갱신이 모두 하나의 변수로 이루어질 때
for
문이 더 적합합니다.
두 번째 블록
{
int i = 0;
for (int i = 0; i < 10; ++i)
{
if (i % 3 == 0)
continue;
cout << i << endl;
}
}
- 주석 처리된
while
문:
i
를 0으로 초기화합니다.
i
가 10보다 작을 때까지 반복합니다.
i
가 3의 배수일 경우 continue
문을 만나 반복의 시작으로 돌아가 i
가 증가하지 않아 무한 루프에 빠집니다.
- 주석 처리된 이유는 무한 루프를 방지하기 위해서입니다.
- 동일한 작업을
for
문을 사용하여 수행합니다.
i
를 0으로 초기화하고, i
가 10보다 작을 때까지 반복합니다.
i
가 3의 배수일 경우 continue
문을 만나 다음 반복으로 넘어갑니다.
i
를 출력하고, i
를 1씩 증가시킵니다.
for
문에서는 continue
문 이후에도 i
가 증가하기 때문에 무한 루프가 발생하지 않습니다.
세 번째 블록
{
}
while
문 내에서 switch
문을 사용할 때 break
와 continue
문은 for
문과 동일하게 동작합니다.
break
문은 switch
문을 종료하고 while
문을 계속 수행합니다.
continue
문은 while
문의 현재 반복을 건너뛰고 다음 반복을 시작합니다.
네 번째 블록
{
int num;
cin >> num;
int total = 1;
while (num)
{
total *= num--;
}
cout << total << endl;
}
- 사용자로부터 정수
num
을 입력받습니다.
total
변수를 1로 초기화합니다.
while
문을 사용하여 num
이 0이 아닐 때까지 반복합니다.
total
에 num
을 곱하고 num
을 1씩 감소시킵니다.
- 최종적으로
total
에는 num
의 팩토리얼 값이 저장되어 출력됩니다.
다섯 번째 블록
{
char ch = 'a';
while (ch <= 'z')
{
cout << ch++ << endl;
}
}
ch
변수를 'a'로 초기화합니다.
while
문을 사용하여 ch
가 'z'보다 작거나 같을 때까지 반복합니다.
- 결과적으로 'a'부터 'z'까지의 모든 소문자 알파벳이 출력됩니다.
여섯 번째 블록
{
int num;
cin >> num;
if (0 == num)
cout << 0 << endl;
else
{
int prevValue = 0;
int currValue = 1;
while (--num)
{
int nextValue = prevValue + currValue;
prevValue = currValue;
currValue = nextValue;
}
cout << currValue << endl;
}
}
- 사용자로부터 정수
num
을 입력받습니다.
num
이 0이면 0을 출력합니다.
- 그렇지 않으면 피보나치 수열을 계산합니다.
prevValue
를 0으로, currValue
를 1로 초기화합니다.
while
문을 사용하여 num
이 1이 될 때까지 반복합니다.
- 각 반복에서 다음 피보나치 수를 계산하고,
prevValue
와 currValue
를 갱신합니다.
- 최종적으로
currValue
에는 num
번째 피보나치 수가 저장되어 출력됩니다.