신규 블로그를 만들었습니다!
제어문의 종류에는 반복문과 조건문이 있다.
1. 반복문
반복문은 이름에서 봐도 알 수 있듯이, 반복동작을 하는 프로그램이 있을 때 사용하면 유용하다.
예를 들면, 구구단을 출력하는 프로그램이 있다고 한다면 반복문을 이용하면 간단히 만들 수 있다.
반복문을 사용하기 위해서는 보통 for문, while문을 사용한다.
for(int i=1; i<10; i++){
// 수행할 식
}
i=1부터 i가 10보다 작을때 까지(i=9일때 까지) 반복해서 실행한다.
for(int i=1; i<10; i=i+2){
// 수행할 식
}
위와는 조금 다르게 i가 2씩 증가하기 때문에, i=1, 3, 5, 7, 9 총 5번 실행이 된다.
예를들어, 구구단 프로그램을 보자
1-1. for문을 이용
#include <stdio.h>
int main(void) {
// 2단 구구단
for (int i = 1; i < 10; i++) {
printf("2 X %d = %d\n", i, (2 * i));
}
return 0;
}
1-2. while문을 이용
#include <stdio.h>
int main(void) {
// while을 이용한 구구단
int num = 1;
while (num < 10) {
printf("3 X %d = %d\n", num, 3 * num);
num++;
}
return 0;
}
while문을 사용할때, 반복문을 빠져나올수 있는 조건을 만들지 않으면 무한 루프에 빠지게 되므로, 주의 해야한다.
while문 말고 비슷한 do ~ while문이 존재한다. 2개의 차이점은 do ~ while문은 최초 한번은 무조건 실행하고, 그냥 while문은 조건이 맞이 않으면 한번도 실행이 안될 수 도 있다.
1-3. while문과 do while문의 차이
num 값이 10이기 때문에 while문은 실행이 안되지만, do ~ while문의 경우는 최초 한번은 실행이 되는것을 확인 할 수 있다.
1-4. 2중 for문을 이용하여 전체 구구단을 만들어보자
#include <stdio.h>
int main(void) {
// 2중 for문 (구구단)
for (int i = 2; i < 10; i++) {
for (int j = 1; j < 10; j++) {
printf("%d X %d = %d\n", i, j, (i*j));
}
printf("\n");
}
return 0;
}
2. 조건문
조건문을 사용 하기 위해서는 보통 if ~ else문, switch문을 사용한다. if문의 경우는 주로 양자택일로 선택해야 하는 상황에서 사용 된다. 반대로 switch문의 경우는 다중택일인 상황에 주로 사용이 된다.
if문
if(조건1){
// 수행할 식
}
else if(조건2){
// 수행할 식
}
else{
// 위의 모든 조건에 만족하지 않는 경우, 즉 나머지 조건을 만족할때 else문이 실행
}
2.1 if문
#include <stdio.h>
int main(void) {
// if문을 사용
int myMoney = 1000; // 내가 가진 돈
int cookie = 500; // 과자 가격
printf("내가 가진 돈 : %d\n", myMoney);
printf("과자 가격 : %d\n", cookie);
if (myMoney >= cookie) {
printf("과자를 살 수 있습니다.\n");
}
else {
// 나머지 경우 : myMoney < cookie
printf("과자를 살 수 없습니다.\n돈이 부족...\n");
}
return 0;
}
2.2 switch문
Switch문
switch(변수)
{
case 경우1 :
// 수행할 식
case 경우2 :
// 수행할 식
...
default :
// 나머지 경우에 수행할 식
}
#include <stdio.h>
int main(void) {
// switch문을 사용
int myScore = 85;
printf("당신의 학점은 ");
switch(myScore/10)
{
case 10:
printf("A\n");
break;
case 9:
printf("B\n");
break;
case 8:
printf("C\n");
break;
case 7:
printf("D\n");
break;
default:
printf("F\n재수강\n");
}
return 0;
}
default는 모든 case에 만족하지 않을때 수행하고 싶은 식이 있으면 사용한다. 만약 필요가 없다면 생략이 가능하다.
2.3 break
case문에 보면 break;를 확인 할 수 있는데, break;를 사용을 하지 않으면 그 아래의 case도 실행을 하게 된다.
예를들어 보면
#include <stdio.h>
int main(void) {
// break
int num = 8;
switch (num) {
case 10:
printf("A\n");
case 9:
printf("B\n");
case 8:
printf("C\n");
case 7:
printf("D\n");
case 6:
printf("E\n");
case 5:
printf("F\n");
}
return 0;
}
위와 같이 num = 8이므로 case 8에만 해당된다. 하지만, break를 쓰지 않았기 때문에 case 8 밑으로 모두 실행되는 것을 알 수 있다.
관련 글
2018/01/28 - [Language/C] - C언어 :: 연산자와 연산자의 종류 #9
2018/01/30 - [Language/C] - C언어 :: 함수(function, method)와 사용법 #11
'Language > C&C++' 카테고리의 다른 글
C언어 :: 배열이란(Array), 선언과 초기화 #12 (0) | 2018.02.05 |
---|---|
C언어 :: 함수(function, method)와 사용법 #11 (0) | 2018.01.30 |
C언어 :: 연산자와 연산자의 종류 #9 (0) | 2018.01.28 |
C언어 :: ASCII 코드와 코드표 #8 (0) | 2018.01.27 |
C언어 :: signed, unsigned 그리고 underflow, overflow #7 (0) | 2018.01.25 |
최근댓글