제어문
반복 제어문
- 반복 제어문의 While while (조건) 에 따라 작동을 하며 조건이 참인 경우 계속해서 반복한다.
- While문을 사용해 코드를 짜다 보면 무한 루프에 빠질 가능성이 꽤 높다. 특히 여러 while을 중첩해서 사용 시 주의해야 한다.
- do-while은 while이 선 판단 후 실행 이라면 do while은 선 실행 후 판단을 한다. 적어도 한 번은 실행을 하게 되어있다.
- while 문 (조건) 부분에는 보통 여러개를 같이 쓰는 경우도 많다 예를 들어 a > 7 && b > 7 이런 식으로 두 가지 혹은 세 가지를 만족하는 동안 ~ 한다 이런 식으로..
- while (조건) 에서 조건 안에 0이 아닌 어떤 정수가 들어가도 참이다.
#include <stdio.h>
int main()
{
int i = -5;
while (i++)
{
printf("%d\\n", i);
}
}

- 문자열도 아스키 코드값이 0 이 아닌 이상 참이다. 그러나 알파벳이나 숫자 외의 값들을 우리가 쓸 일은 거의 없을 것이다.
#include <stdio.h>
int main()
{
char a = 'z';
while (a-'a')
{
printf("%c", a--);
}
}

- 백준과 같은 문제를 풀거나 할 때 특정 조건을 만족할 때 까지 무한 반복을 시켜주고 싶을 때 다음과 같이 사용하기도 한다.
#include <stdio.h>
int main()
{
int idx = 0;
while (1)
{
printf("%d\\n", idx++);
if (idx == 5)
{
break;
}
}
}

기타 제어문
- break문 break문은 for과 while을 탈출한다. break는 break가 들어있는 하나의 반복문을 탈출한다. 반목문이 중첩되어있어도 하나의 반복문을 탈출한다.
- break와 비슷한 역할을 하는 제어문이 하나 더 있다. 그것은 바로 return 이다. return은 해당 함수를 종료시키는 역할을 한다. 마찬가지로 한 번에 하나의 함수를 반환시킨다.
- continue는 반복문에서 사용 시 continue 아래 부분을 건너뛰고 반복문의 맨 처음으로 돌아온다. 만약 for을 통해 1~10까지 증가하고 짝수만 출력하는 코드를 짠다고 할 때 다음과 같이 짤 수도 있다.
#include <stdio.h>
int main()
{
for(int i=1;i<=10;i++)
{
if(i%2==1)continue;
printf("%d",i);
}
}
만약 i%2가 1 즉 홀수이면 continue 밑에 있는 출력이 실행되지 않고 건너뛴다.