C에서 이용되는 조건문과 반복문에 대하여 알아보겠습니다.
조건문이란 조건을 검사하여 결과값에 따라 실행할 문장을 결정하는 제어문입니다.
반복문이란 같은 일을 반복하게 하는 제어문입니다.
1. 조건문 - if, else if, else
조건문 if는 조건을 입력하여 조건에 만족하는지 확인하고, true일 때에 작성한 문장을 실행합니다.
if문과 함께 이용되는 조건문은 else if와 else가 있습니다.
else if는 위에 있는 if문이 거짓일 때 확인하는 조건문과 문장을 작성합니다. if와 else는 하나의 조건문에 한번 쓸 수 있지만 else if는 몇개를 사용해도 괜찮습니다.
else는 위에 있는 if문과 else if문이 모두 거짓일 때 실행할 문장을 작성합니다.
int main(int argc, char* argv[]) {
int num = 11; if (num >= 15) { // num >= 15인지 확인 printf("num은 15보다 같거나 크다."); } else if(num >= 10){ // num >= 15가 거짓이면 num >= 10인지 학인 printf("num은 15보다 작지만 10보다 크거나 같다."); } else { // 위의 if문과 else if문이 모두 거짓이면 실행한다. printf("num은 10보다 작다."); }
return 0; } |
2. 조건문 - switch
switch문은 하나의 변수나 수식에 대한 조건을 검사하여 실행할 문장을 선택하는 조건문입니다.
switch문은 case와 함께 사용하며, 각각의 case 마다 break;을 작성하여 해당 case가 끝남을 알려야 합니다.
if문에서 조건에 만족하는 경우가 아예 없을 때 실행할 내용을 else에 작성했다면, switch문에서는 default로 나머지 조건을 받아옵니다.
int main(int argc, char* argv[]) {
int num; printf("1~3중 하나의 정수 입력: "); scanf("%d", &num); //숫자 입력받아 num에 넣기 switch (num) { //switch문 시작 case 1: //num이 1일 때 printf("입력받은 숫자는 1입니다."); //실행문장 break; //해당 case의 끝을 알린다. case 2: //num이 2일 때 printf("입력받은 숫자는 2입니다."); break; case 3: //num이 3일 때 printf("입력받은 숫자는 3입니다."); break; default: //num이 1~3에 포함되지 않을 때.(이외의 값) printf("이외의 값이 입력되었습니다."); break; }
return 0; } |
switch문에서 가장 중요한 것은 break; 입니다.
** break;을 작성하지 않는다면 프로그램에서 해당하는 case가 끝남을 인지하지 못하고 break;을 만날 때까지 아래에 있는 코드들을 모두 실행합니다.
3. 반복문 - for
반복문 for은 반복횟수가 정해져 있을 때 사용하는 반복문입니다.
for문은 초기값과 조건, 증감식으로 이루어져 있습니다.
for문의 구성 : for(초기값; 조건; 증감식){ 반복할 문장 };
int main(int argc, char* argv[]) {
int i; //for문에서 이용할 변수 선언 for (i = 0; i < 10; i++) //초기값을 0으로, i < 10이라면 반복, 반복할 문장 실행 후 i에 1씩 더한다. { printf("%d 번째 반복 출력", i); //반복할 문장 }
return 0; } |
위 코드를 살펴보면, for문에서 반복할 횟수를 정할 변수 i를 선언하고, 초기값을 i = 0으로 i가 10미만일때만 반복하고 문장 실행 후엔 i에 1을 더해주며 i == 10일 경우 반복을 중단합니다.
초기값, 조건, 증감식은 어느것이라도 생략 가능합니다. 하지만 무한루프에 걸릴 가능성이 있습니다.
int main(int argc, char* argv[]) {
int i; for (i = 0; i < 10; i++) { if (i % 2 != 0) { //i가 홀수일 때 continue; //남은 문장을 실행하지 않고 증감식으로 넘어간다. } printf("i = %d !\n", i); //continue를 만나지 않았다면 실행된다. }
return 0; } |
위와 같이 continue; 라는 코드를 이용할 수 있는데, continue;는 반복문 내에서 실행되었을 때 아래에 남은 코드를 실행하지 않고 증감식으로 넘어갑니다.
4. 반복문 - while, do-while
while문은 주어진 조건식이 참일 때 반복, 거짓일 때 while문을 벗어나게 되는 반복문입니다.
while문의 구성: while(조건){ 반복할 문장 }; 으로 작성합니다.
int main(int argc, char* argv[]) {
int i = 0; //임의의 초기값 while (i < 5) { //i < 5일때 true, 반복문 실행 //반복할 문장 printf("while문 실행 완료!"); //반복시 출력 i++; //i에 1씩 더한다. }
return 0; } |
위와 같이 이용하며 조건에 1(true, 참)을 입력한다면 계속해서 반복실행하게 됩니다. (무한루프)
int main(int argc, char* argv[]) {
int i = 0; while (1) { //1 == 무조건 참 //반복할 문장 printf("while문 실행 완료!"); //반복시 출력 i++; //반복할 때마다 i에 1을 더한다. if (i == 4) { break; // i가 4가 되었을 때 반복문 탈출 } }
return 0; } |
위와 같이 조건을 1(true, 참)으로 두었다면 반복문 내에 break;이 걸리는 조건을 만들어 while문이 무한루프에 빠지는 것을 막을 수 있습니다.
'C' 카테고리의 다른 글
2. 연산자 (0) | 2021.01.19 |
---|---|
1. C시작 (기본구조, 자료형, 입출력함수, 형식지정자) (0) | 2021.01.19 |