Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

제어문 본문

Class/C, C++

제어문

김브래 2022. 12. 29. 17:18

제어문

- 위부터 아래로 순차적으로 실행되는 프로그램의 실행 순서를 바꾸기 위해서 사용하는 제어문은 C/C++ 언어 뿐 아니라 다른 언어에서도 가장 중요한 문법
- 제어문의 문법은 간단하지만 잘 활용할 수 있느냐에 따라 프로그래밍을 할 수 있는지 없는지 판가름
- for문과 if문의 사용 빈도가 가장 높음


조건문 : if 

- if문 다음 괄호 안의 조건식이 참이면 문장1을 실행하고 거짓이면 문장1은 실행하지 않고 건너뜀

 

if(조건식){
문장 1;

}

조건문 : if~else문

- 양자택일의 상황에서 사용
- if문 다음의 괄호 안의 조건식이 참이면 문장1을 실행하고 다음 문장으로 가며, 조건식이 거짓이면 문장2와 다음 문장을 실행

 

if(조건식){
문장 1;

}else{
문장 2;

}

 

다중 if~else문

- 더 많은 조건에 따라 분기해야 하는 프로그램은 다중 if~else문을 사용
- else문에 다시 if~else문을 사용하는 것이고 마지막은 else로 끝남

 

if(조건식1){
문장 1; 

}else if(조건식2){

문장 2; 

}else if(조건식3){

else{
문장 n

}

 

조건문 : switch∼case문

- switch~case문은 다중 if~else문처럼 경우(case)의 수가 많을 경우 자주 사용하는 조건문
- 결과가 정수형(int, char, enum)인 경우만 선택할 수 있으므로 범위 검사 문제에는 적당하지 않음

 

switch(조건식){ //조건식은 결과가 정수형(int, char, enum)인 수식만 가능
case 상수1 : //조건식의 결과가 상수1이면, if(조건식==상수1) 
문장1; 
break; //switch~case문 루프를 벗어남
case 상수2 : //조건식의 결과가 상수2이면, else if(조건식==상수2) 
문장2; 
break; 

case 상수n: 
문장n; 
break; 
default : //만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당
문장; 
break; //없어도 되지만 통일감을 위해 쓰는 것이 좋음
}//switch~case문 루프 끝


- case 다음에 쓰는 상수1, 상수2 등을 레이블(label)이라 함
- case문의 레이블 다음에는 구두점 콜론(:)을 씀
- break문은 자신을 포함하고 있는 블록(루프)을 벗어나는데 사용
- 조건식은 각 case문에서 차례대로 비교되고 조건식의 결과와 상수 레이블이 일치하면 그 아래 문장을 실행하고 break문을 만나면 switch~case문을 탈출
- 보통은 각 case별로 실행할 내용이 다르므로 case문마다 마지막에 break문을 모두 사용하지만, break문을 반드시 써야 하는 것은 아님


반복문 : for 

특정한 부분을 반복
- C 프로그래밍에서 가장 많이 등장하는 중요한 문법
- 반복 횟수를 알고 있는 경우 많이 사용
- for문은 제어 변수 초기식, 조건식, 증감식(증가나 감소식을 줄여서)의 세 부분으로 구성
- 각각은 구두점 세미콜론(;)으로 분리
- 제어 변수는 반복문을 제어하는 변수로 제어 변수 초기식은 루프가 시작될 때 한 번만 수행. 
- j=0과 같이 제어 변수에 초기값을 할당
- 조건식은 반복문이 언제까지 실행될 것인지를 지정하며 조건식이 참이면 반복문의 루프는 돌고, 거짓이면 루프를 빠져나옴
- 증감식은 반복 실행될 문장이 모두 실행된 후 실행되며 보통 제어 변수를 증가나 감소시킴

 

반복문 : while 문

- while문은 미리 반복 횟수를 알 수 없고 조건에 따라서 반복하는 경우에 사용

 

while(조건식){ 
반복 실행될 문장; 


- 조건식이 참이면 루프 안에 반복 실행될 문장을 실행하고 거짓이면 루프를 벗어남

 

while문을 이용한 무한 루프

- 조건식에 참인 값을 씀
- 0 이외의 어떠한 값도 가능하지만 보통 1을 씀


while(1){
반복 실행될 문장;
}

 

반복문 : do~while문

- do~while문은 while문처럼 미리 반복 횟수를 알 수 없고, 최소한 한번은 반복 문장을 실행할 경우에 많이 사용

 

do{ 
반복 실행될 문장; 
}while(조건식)


- 일단 반복 실행될 문장을 한번 실행하고 while의 조건식을 검사한다. 조건이 참이면 루프 안에 반복 실행될 문장을 계속 실행하고 거짓이면 루프를 벗어남
- while(조건식) 다음에 세미콜론 (;)을 붙여야 하는 것을 조심

 

do~while문을 이용한 무한 루프

- 조건식에 참인 값을 씀
- 0 이외의 어떠한 값도 가능하지만 보통 1을 씀

 

do{
반복 실행될 문장;
}while(1);


무한루프


분기문 : break 문

- 반복문(for, while, do~while)이나 switch~case문에서 안쪽 루프를 하나 벗어나는데 사용
- 무한 루프에는 특별한 조건에서 루프를 탈출 하도록 반드시 break문을 작성

 

for( ; ; ){ //무한 루프
printf("끝내려면 0+0을 입력하세요\n");
printf("계산하려는 수식(예:10+20)을 입력하세요:"); 
scanf("%d%c%d",&num1,&op,&num2); 
if(num1==0 && num2==0) break;

} //for문 끝

 

분기문 : continue문

- for, while, do~while문에서 루프의 조건식을 검사하는 부분으로 다시 되돌아감
- break문처럼 루프를 빠져나가는 것이 아니라 돌던 루프의 continue 아래 부분을 실행하지 않고 다시 조건을 검사하는 부분으로 감

 

분기문 : goto문

- goto문은 무조건 해당 레이블로 분기

goto SS; 

SS:


- goto문은 프로그램 어느 곳이라도 레이블을 만들어 바로 이동할 수 있는  편리함이 있지만 프로그램을 이해하기 어렵게 하므로 사용하지 않는 것이 좋음

- 루프가 다중으로 중첩되어 있는 경우 break문을 사용하더라도 루프 밖으로 완전히 빠져 나올 수 없는데 goto문을 사용하면 한 번에 다중 루프를 빠져 나올 수 있음


요약 - 제어문

 

'Class > C, C++' 카테고리의 다른 글

함수  (2) 2022.12.31
C 언어 문법 정리 - 식별자, 리터럴(상수), 자료형, 변수, 전처리기, 연산자  (2) 2022.12.26
C++ 언어 소개  (2) 2022.12.25
C / C++ 자료 출처  (0) 2022.12.25