본문 바로가기
C

3. 조건문과 반복문 (if, switch, for, while)

by heekng 2021. 1. 19.
반응형
 

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