본문 바로가기
IT/C

[C언어] 기초 내용 정리 (조건문, 반복문, 함수)

by dwoi 2023. 3. 23.

본 내용은 C언어의 조건문과 반복문에 대한 기초를 공부하고 정리한 내용을 담음.

 

목차

     


    C언어

     


    반복문

    • 어떤 행동을 반복적으로 수행하는 문장

     

    1.1. 반복문의 종류

    • while 문
    • for 문
    • do ~ while 문

     

    1.2. while 문

    while (조건식)
    {
    	반복할 내용
    }

     

    • 조건식이 참인 동안 반복할 내용을 반복해라
    • 즉 조건이 True면 무한히 실행될 수도 있음.
    • while문 안에도 또 다른 while문이 존재할 수 있음.
      • 중첩 while문일 때 안 쪽 반복에서 다시 초기화해주는 것이 필요하니 주의!
      • 도식화하여 반복하는 걸 수동 디버깅하면서 익힐 것!

     

    1.3. for 문

    for (초기값; 조건값; 증감값)
    {
         반복할 내용
    }

    조건값이 참인 동안 반복할 내용을 반복적으로 수행할 것

    • 조건값을 True로 주면 무한히 실행
    • 중첩 for 문도 가능

     

    1.4. do ~ while 문

    do
    {
       반복할 내용
    } while(조건식)
    1. {} 내용을 먼저 실행
    2. while 문 안에 있는 조건의 참과 거짓을 판단
      1. 참이면 다시 반복
      2. 거짓이면 반복 탈출

     

    • while문과 do~while문 비교
      • while문 : '조건이 만족하지 않으면 반복할 내용을 실행하지 않는다.'
      • do ~ while 문 : '최소한 한번은 반복할 내용을 실행한다.'

     

    2. 조건문

    2.1. if 문

    if (조건식)
    {
    	코드
    }
    else if (조건식)
    {
    	코드
    }
    else 
    {
    	코드
    }
    • if (조건식) 뒤에 세미콜론 붙이면 안됨!
    • 조건문으로 실행할 코드가 하나이면 중괄호 생략가능하지만 중괄호를 써버릇 하자

     

    2.2. switch ~ case문

    • 조건문을 표현하는 방식
      • if else문을 간결하게 표현
      • if else문보다 가독성이 높지만 제약이 있음.
    switch(변수)
    {
       case 값1 :
        	코드;
            break;
        
        case 값2 :
        	코드;
            break;
            
        case 값3 :
            코드;
            break;
            
        default :
        	코드;
    
    }

    변수의 값과 동일한 값을 갖는 case로 가서 실행문을 실행

    존재하지 않는 값을 실행하면 default에 해당하는 실행문을 실행

    2.2.1. switch문의 한계 1

    • 관계 연산이 올 수 없다.
    • '실수' 자료형을 사용할 수 없다.

    2.3. break와 continue

    • break문
      • 조건문을 종료
      • 반복문을 종료
    • continue문
    • 반복을 끝내는 게 아니라 continue를 만난 순간 continue문 아래에 있는 실행해야하는 코드를 건너뛰고 다음 반복을 시작한다.

     

    3. 함수

    3.1. 함수

    • 함수란?
      • 특정 작업을 수행하는 코드의 집합
        • C 언어에서 제공해주는 표준 라이브러리 함수
        • 사용자가 직접 만든 함수인 사용자 정의 라이브러리 함수
    • 함수 사용의 장점
      • 코드의 안정성 향상
      • 에러 수정이 쉬움
      • 재사용성 향상

     

    3.2. 함수의 기본 요소

     

    • 입력 형태 : 함수가 입력 받을 형태
    • 함수 이름 : 함수의 이름을 표현
    • 출력 형태 : 함수의 출력을 나타냄
    • 함수의 기능 : 함수가 수행할 기능 정

    우에서 좌방향으로 해석

    3.2.1. 함수의 형태

    1. 11형태
      • 입력값을 받고 그것을 출력하는 형태가 존재하는 형태의 함수
      • 출력 형태가 있으니 함수 내에서 반드시 return문 존재해야함
    2. 10형태
      • 출력이 있고 입력이 존재하지 않는 형태의 함수
      • 마찬가지로 출력이 있으니 함수 내에서 반드시 return 문이 존재해야함
      • 다만 위와의 차이는 입력받는 값이 없다는 점.
    3. 01형태
      • 입력값은 있지만 출력값이 없는 형태의 함수
      • 값 하나를 입력받아 기능을 처리하지만 출력 형태가 void라 return문 없어도 됨.
    4. 00형태
      • 입력도 없고 출력도 없는 형태의 함수라 내부 기능만 수행하고 종료되는 함수

     

    3.3. 함수 적용 방법

    1) 함수를 먼저 정의하고 나중에 호출하는 방법

     

    2) 함수를 선언 → 함수를 호출 → 함수의 정의

     

    컴파일은 처음부터 만들어진 내용은 컴파일하는데 함수를 호출하려는데 함수가 존재하지 않으면 에러가 발생하므로 

    함수를 정의를 하고 호출하거나 선언해둔 다음 나중에 정의하는 방법 두 가지가 존재.

     

     


     

    4. 변수의 종류와 범위

    4.1. 지역 변수 (LocaL Variable)

    사용 범위

    • 함수 내부에서 사용되는 변수
    • 조건문 또는 반복문의 중괄호 내부에서 사용
    • 함수의 매개 변수로 사용
    • 각각 함수마다 독립적으로 사용되는 변수라고 생각

     

    4.2. 전역 변수(Gloval Variable)

    사용 범위

    • 중괄호 외부에서 사용
    • 전역에서 사용되는 변수라고 생각

     

    4.3. 정적 변수(Static Variable)

    static int num;
    • 자료형 앞에 static 키워드를 붙여서 사용
    • 프로그램이 종료되지 않는 한 메모리가 소멸되지 않음
    • 초깃값을 지정하지 않아도 자동으로 0을 가짐
    • 프로그램이 시작되면 초기화는 딱 한 번만 수행
    • 정적 변수는 중괄호가 있는 지역에서 전역 변수의 기능이 필요할 때 사용!

     

    4.4. 외부 변수 (External Variable)

    • 외부 파일에 선언된 변수를 참조하는 변수
    • 자료형 앞에 extern 키워드를 사용
    • 다른 파일에 있는 전역 변수를 참조

     

    5. 재귀함수

    5.1. 재귀함수란?

    • 함수 내에서 자기 자신을 호출하는 함수

    ※ 문제점 : 시간과 메모리 공간 효율이 저하되므로 신중히 사용

    자기 자신을 호출하다보니 끝날때까지 탈출하지 못하므로 램이 오버플로우 될때까지 돌아감.

     

    마무리

    메모리 구조를 생각하면서 배우니 좀 더 직접적으로 알 수 있었던 게 이해에 도움이 됨.

    댓글