[C언어] 제어문, 함수

2022. 5. 27. 00:15·C언어
목차
  1. 1. 반복문: while문
  2. 2. while문을 이용한 무한 루프
  3. 3. 반복문 : do~while문
  4. 4. 분기문: break문
  5. 5. 분기문 : continue문
  6. 6. 함수
  7. 6.1 C프로그램의 기본 틀
  8. 7. 함수의 입력과 출력
  9. 8. 함수를 사용할 경우의 장점
  10. 9. 표준 라이브러리 함수와 사용자 정의 함수
  11. 10. 함수명
  12. 11. 함수 정의, 호출, 선언
  13. 11.1 함수정의
  14. 11.2 함수호출
  15. 11.3 함수선언
  16. 12. 함수 호출(call)
  17. 12.1 #include <stdio.h>와 함수 선언
728x90
반응형

1. 반복문: while문

while문은 for문과 달리 미리 반복 횟수를 알 수 없고 조건에 따라서 반복하는 경우에 사용한다.

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

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

2. while문을 이용한 무한 루프

조건식에 참인 값을 쓴다.

0이외의 어떠한 값도 가능하지만 보통 1을 사용한다. (참은 1로 표시되기 때문)

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

3. 반복문 : do~while문

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

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

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

while문
do~while문
문자 'q'를 입력 받을 때까지 계속 문자를 입력받는 프로그램
0에서 100점 사이의 점수를 입력받아 Pass, Fail를 판단
메뉴를 가지고 있는 프로그램의 기본 틀

4. 분기문: break문

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

5. 분기문 : continue문

continue문은 for, while, do~while문에서 루프의 조건식을 검사하는 부분으로 다시 되돌아간다.

break문처럼 루프를 빠져나가는 것이 아니라 돌던 루프의 continue 아래 부분을

실행하지 않고 다시 조건을 검사하는 부분으로 가는 것이다.

1부터 100까지 10의 배수를 제외하고 출력


6. 함수

C 프로그램은 함수(function)의 집합이다.
함수란 특정한 작업을 하도록 만들어진 독립적인 단위 모듈이라고 설명할 수 있다. C언어는 큰 프로그램 하나를 여러 개의 함수로 분할하여 구현하는 구조적 프로그래밍(structured programming) 방식의 기본이다. (ex. printf(), 자판기, 전광판, 계산기 등)
함수에 입력시키는 것을 매개변수(parameter) 또는 전달인자(인수, argument)라고 하며 함수가 돌려주는 결과 값을 반환값 또는 리턴값(return value)이라 한다. (일반적으로는 리턴값이라고 부름) 자판기로 비유하자면 동전이나 버튼이 매개변수나 인자가 되고, 커피가 리턴값이 된다.

6.1 C프로그램의 기본 틀

콘솔 기반 C프로그램은 main()함수로 시작한다. main()함수는 콘솔 기반 C프로그램의 시작점이라고 말할 수 있다.(*entry point)

하나의 프로그램에는 반드시 하나만 존재해야 한다. 

리턴값이 없는 함수나 매개변수가 없는 함수는 그 위치에 비어 있다는 뜻의 "void"를 쓴다.

매개변수 리스트에 쓰는 "void"는 생략할 수 있지만 리턴형에 쓰는 "void"는 생략이 불가하다.

 

#include <stdio.h>
int main(void);
{
코드
return 0;
}

(C프로그램의 기본 형식)

 

7. 함수의 입력과 출력

입력 : 매개변수(parameter), 인자

출력 : 반환값(return value), 리턴값

void : 리턴값이 없으면 리턴형 쓰는 자리에 void -(void add)

        :매개변수 없으면 매개변수 쓰는 자리에 void -add(void)

 

8. 함수를 사용할 경우의 장점

  • 복잡한 문제를 나누어서 해결하는 구조적 프로그래밍(structured programming)이 가능하다.
  • 프로그램의 각 부분을 독립적인 모듈로 나누어 작성하므로 작성, 수정, 유지, 보수, 확장이 용이하다.
  • 반복되는 작업을 하나의 루틴으로 만들어 재사용하므로 코딩 양이 감소한다.
  • 일반 사용자가 알 필요없는 특정한 부분을 숨갈 수 있는 정보 은폐가 가능하다.

9. 표준 라이브러리 함수와 사용자 정의 함수

C언어의 기본적인 문법과 표준 함수들은 컴파일러에서 지원을 하는데 이러한 함수들의 집합을 표준 라이브러리 함수라고 한다.

하지만 내가 원하는 기능을 가진 함수를 사용하고 싶다면 표준 라이브러리 함수에 없기 때문에 직접 만들어야 하는데

이를 사용자 정의 함수라고 한다.

10. 함수명

동사, 모두 소문자와 단어 사이 언더스코어(_)
 -add(), add_number(), delete_name(), check_for_errors(), dump_data_to_file()
동사, 의미가 바뀌는 부분은 대문자, 나머지는 소문자(lower camel case)

-add(), addNumber(), deleteName()
동사, 첫 글자와 의미가 바뀌는 부분은 대문자, 나머지는 소문자(upper camel case)
-AddNumber(), DeleteName()

 

11. 함수 정의, 호출, 선언

11.1 함수정의

  • 함수만들기
  • 이름, 매개변수, 리턴형, 기능

11.2 함수호출

  • 함수 사용하기
  • 이름, 매개변수

11.3 함수선언

  • 함수의 사용법
  • 이름, 매개변수, 리턴형
  • 컴파일러에게 함수에 대한 정보를 미리 줌

12. 함수 호출(call)

함수를 만드는 것을 함수를 정의(definition) 한다고 한다.

함수를 만든(정의) 후 함수를 사용(호출)하며 함수를 호출할 때는 함수 이름과 괄호 안에 argument를 개수만큼 써야 한다.

(argument가 없을 때는 빈 괄호만 쓰면 된다.)

 

12.1 #include <stdio.h>와 함수 선언

지금까지 본 예제들의 첫 줄에는 "#include <stdio.h>"와 같이 stdio.h파일을 컴파일 하기 전에 프로그램에 포함시키고 있다.

stdio.h파일의


_CRTIMP int __cdecl printf(const char *, ...);

int printf(문자열,...);


이것이 printf()함수의 선언이다.
사용자 정의 함수뿐 아니라 표준 라이브러리 함수도 사용하기 전에 반드시 선언해야 한다.


직접 위의 한 줄을 main()함수 전에 추가해도 되지만 선언되어 있는 헤더 파일인 stdio.h 를 프로그램에 포함하여

간접적으로 선언하는 것이다.
함수 선언은 컴파일러에게 프로그래머가 라이브러리 함수를 올바르게 사용하고 있는지 체크하도록 하기 위한 것이다.

728x90
반응형

'C언어' 카테고리의 다른 글

[C언어] 배열, 구조체, 포인터  (1) 2022.06.09
[C언어] 함수, 기억클래스  (0) 2022.06.02
[C언어] 제어문 (2)  (0) 2022.05.19
[C언어] 제어문 (1)  (0) 2022.05.15
  1. 1. 반복문: while문
  2. 2. while문을 이용한 무한 루프
  3. 3. 반복문 : do~while문
  4. 4. 분기문: break문
  5. 5. 분기문 : continue문
  6. 6. 함수
  7. 6.1 C프로그램의 기본 틀
  8. 7. 함수의 입력과 출력
  9. 8. 함수를 사용할 경우의 장점
  10. 9. 표준 라이브러리 함수와 사용자 정의 함수
  11. 10. 함수명
  12. 11. 함수 정의, 호출, 선언
  13. 11.1 함수정의
  14. 11.2 함수호출
  15. 11.3 함수선언
  16. 12. 함수 호출(call)
  17. 12.1 #include <stdio.h>와 함수 선언
'C언어' 카테고리의 다른 글
  • [C언어] 배열, 구조체, 포인터
  • [C언어] 함수, 기억클래스
  • [C언어] 제어문 (2)
  • [C언어] 제어문 (1)
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록

P_Piano님의
글이 좋았다면 응원을 보내주세요!

응원하기
응원은 창작의 힘

이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.

카카오 계정으로 누구나

응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.

응원 댓글 강조

글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.

쉬운 결제

응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.

응원 수익은 창작자에게 큰 힘이 됩니다.
응원 금액
응원 댓글
  • 창작 활동에 대한 감사와 격려의 의미로 창작자를 응원합니다.
  • '응원하기'는 자발적 결제이므로 청약철회(환불) 불가능합니다.
  • '응원하기'는 만 14세 이상 인증 사용자만 이용할 수 있습니다. 만 19세 미만 미성년 회원의 경우, 법정대리인이 응원하기 결제 이용에 동의하지 않으면 미성년자 본인 또는 법정대리인이 그 결제 내용을 취소할 수 있습니다.
  • '응원하기' 이용을 위한 자세한 내용은 티스토리 이용약관 및 카카오 유료서비스 이용약관을 따릅니다.
(주) 카카오 대표이사 정신아
사업자 등록 번호 120-81-47521
통신판매업신고번호 제2015-제주아라-0032호
주소 제주특별자치도 제주시 첨단로 242(영평동)
호스팅사업자 (주)카카오
고객센터 1577-3754
이메일 help.notice@kakaocorp.com
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (201)
      • Apple (119)
        • iOS (22)
        • visionOS (4)
        • Swift (65)
        • UIKit (2)
        • SwiftUI (20)
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ios
    변수
    티스토리챌린지
    함수
    오블완
    Vision Pro
    이니셜라이저
    네트워크
    스위프트
    연산자
    코딩테스트
    Optional
    프로퍼티 래퍼
    클래스
    swiftUI
    메서드
    Initializers
    배열
    옵셔널
    visionOS
    Xcode
    UIKit
    비동기
    운영체제
    디자인패턴
    프로세스
    제어문
    자바스크립트
    combine
    SWIFT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[C언어] 제어문, 함수

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.