Search
Duplicate

분기문

Created
2021/11/18 08:53
Tags

분기문이라고도 하고 조건문이라고도 한다.

역할
에 따라 실행 영역을 구분하여 실행
컴퓨터는 사람이 생각하는 조건을 생각할 수 없다.
컴퓨터는 0, 1 로 실행할지 판단을 한다.
분기하기 위한 의 표현 방식?
조건식의 결과(0, 1)
값 자체(정수값)

분기문 if ~ else

if ~ else 문
if : 만약 ~
→ 조건식
→ 비교 연산, 논리연산, 0, 1
else : 그 밖의, 또 다른
if ~ else의 기본 구조
if(조건식) { ...; // 조건식이 True인 경우 } else { ...; // 조건식이 False인 경우 }
C
복사
if ~ else의 다양한 형식
1.
if(조건식) → { } 가 없으면 한 문장에만 적용
#include <stdio.h> int main(void) { int var1 = 12; if(var1 > 7) pirntf("True\n); return 0; }
C
복사
2.
두 변수 사용
#include <stdio.h> int main(void) { int var1 = 10, var2 = 12; if(var1 > var2) printf("True\n"); else printf("False\n"); return 0; }
C
복사
3.
else가 없는 if 문
if(조건식) { 문장1; 문장2; }
C
복사
되도록이면 { } 를 사용하는게 좋다.
if ~ else 복잡한 형식
1.
else if( )
if(조건식1){ 문장1; } else if(조건식2){ // if(조건식) False 라면 실행된다. 문장2; } else{ // if와 else if 모두가 False 라면 실행된다. 문장3; }
C
복사
2.
다중 조건문(분기문)
if(조건식){ if(조건식2){ 문장1; } } else if(조건식3){ if(조건식4){ 문장2; } else{ 문장3; } }
C
복사

분기문 switch ~ case

if문의 단점을 극복하고 조금은 더 세련되게 만든게 switch 문이다.

switch
전환하다, 바꾸다, 스위치
식을 나열 → 결과 값은 항상 정수
case
경우, 예
switch의 값과 동일한 값으로 제어를 옮겨 실행
break
깨트리다, 어기다, 중단하다
case 처리를 종료하고 switch문 밖으로 제어를 옮김
default
초기 설정
switch 식의 값이 case에 없을 때 실행
switch 문의 기본 구조
switch(){ case1 : 문장1; break; // 생략가능 case2 : 문장2; break; // 생략가능 default : 문장3; break; // 생략가능 }
C
복사

break

break 역할
해당 문에서 가장 가까운 while, do ~ while, for, switch 문의 실행을 종료
int main(void){ int i = 0; while(1){ if(i == 3){ break; } printf("%d\n", i); i++; } return 0; }
C
복사

continue

continue 역할
자신과 가장 가까운 do ~ while, for, while 의 다음 반복으로 제어를 옮기되 이때 contineu가 있는 하단의 문장은 건너 뛴 상태로 제어를 옮긴다.
#include <stdio.h> int main(void){ int i = 0; while(i < 7){ if(i==3){ i++; continue; // i++ 위에 있다면 프로그램이 안 끝남 } printf("%d\n", i); i++; } return 0; }
C
복사

for 문에서 continue 제어 위치

for(1.변수초기화; 2.조건식; 3.조건 변수의 증감){ 문장1; continue; 문장2; }
C
복사
실제 코드 예
int main(void){ int i; for(i = 0; i < 8; i++){ if(i == 3){ continue; // i가 3이라면 건너 뛰고 i를 증감한다 } printf("%d", i); } return 0; }
C
복사