첫 번째 블록
{
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번째 피보나치 수가 저장되어 출력됩니다.