티스토리 뷰
흐름 제어
- 프로그램은 한 줄씩 실행됨
- 어떤 조건에 따라 특정 line으로 실행흐름을 이동시키거나, 특정 영역을 반복 실행시킨다.
조건문
특정 조건을 만족할 때 해당 코드 실행
if - else if - else
조건에 맞는 if block 또는 else if block을 실행
어느 조건도 만족하지 않을 때 else block 실행
if (조건1) { // code 1 } else if (조건2) { // code 2 } else { // default code }
switch
일치하는 case의 코드 실행
어떤 case도 일치하지 않을 때 default 코드 실행
switch (값) { case 조건1: // code 1 break; case 조건2: // code 2 break; default: // default code break; }
반복문
특정 조건을 만족할 때 특정 명령을 반복해서 실행
for문과 while문은 상호 치환 가능. Assembly단에서는 동일한 명령어로 동작한다.
for
초기화한 뒤 초기화한 값이 조건에 맞는다면 명령을 실행하고 반복 끝 명령어로 마무리.
다음으로 조건에 만족한다면 명령을 실행하는 것을 반복
반복 탈출할 떄 break 사용
for (초기화; 조건; 반복 끝 명령어) { // 명령 }
while
- 조건을 만족하는 동안에 명령을 반복 실행
- 조건을 만족하지 않게 되면 반복 종료
- 중간에 반복을 탈출할 때 break 사용
while (조건) { // 명령 } // n을 계속 감소시키면서 명령 실행하기. n이 0이되면 조건이 false가 되므로 종료된다. int n; while (n--) { // 명령 }
무한 루프
- 종료조건 없이 한 없이 반복되는 반복문
- 조건이 항상 참이게 되는 경우 발생한다
- 시스템 자원을 비정상적으로 많이 소모하므로 발생하지 않게 주의해야 함
for (;;) {
}
for (; 1;) {
}
반복 중첩
- 반복문 안에 또 다른 반복문
- 바깥 반복문이 n번 반복, 안쪽 반복문이 m번 반복 →
n x m
번 반복하게 된다
for (int i=0; i<n; i++) {
for (int j=0; j<m; j++ {
}
}
함수
- 입력(input)을 받아 처리한 뒤 결과값(output)을 반환(return)
- 특정 소스코드의 실행이 반복되는 것을 줄여준다.
- 라이브러리 : 자주 사용하는 함수들을 모아놓은 것으로 이해할 수 있다.
반환자료명 함수명(매개변수) {
// 명령
return 반환값;
}
재귀함수
- 자기 자신을 포함하는 함수, 함수 안에서 자기 자신을 호출한다.
- 종료 조건이 없다면 무한 루프에 빠질 위험. 재귀 호출의 종료 조건이 반드시 필요함
- 코드를 많이 줄여주지만 무한 루프 위험이 있음
- 함수 call → stack 자원 사용 → 무한루프가 발생하면 stack overflow error가 발생할 수 있다.
- 대표적인 예로 팩토리얼을 구하는 함수를 들 수 있다.
int factorial(int n) { if (n == 1) return n; else return n * factorial(n - 1); }
'Language > C' 카테고리의 다른 글
C Basic. 배열, 포인터, 문자열 (0) | 2021.09.21 |
---|---|
C Basic. 흐름 제어(조건문, 반복문), 함수 (0) | 2021.09.21 |
C Basic. 변수와 상수, 자료형, 연산자, 입출력 (0) | 2021.09.21 |
- TAG
- C
댓글
공지사항
최근에 달린 댓글
- Total
- 1,484
- Today
- 0
- Yesterday
- 1
링크
TAG
- memory
- Sync
- 미소유 참조
- Memory Management
- 프로그래머스
- Asset
- dispatch queue
- unowned
- concurrent
- gcd
- 생명 주기
- 반응형 프로그래밍
- dispatch
- 생명주기
- Swift
- Strong Reference Cycle
- Asynchronous
- PhotoKit
- 명령형 프로그래밍
- 선언형 프로그래밍
- bounds
- asset catalog
- 2019 카카오 개발자 겨울 인턴십
- async
- C
- reference cycle
- Concurrent programming
- ios
- 크레인 인형 뽑기
- viewcontroller