IMCAT.DEV
로그인 가입
C# 입문 문법

C# 함수 정의 및 호출

C# 함수 정의 및 호출 — 초급

함수 정의 및 호출

1. 도입 (왜 배워야 하는가)

프로그래밍에서 함수는 특정 작업을 수행하는 코드의 집합체입니다. 함수는 코드를 모듈화하고 재사용 가능하게 만들어 주며, 코드의 가독성을 높이고 유지보수를 용이하게 합니다. 예를 들어, 쇼핑몰 웹 애플리케이션을 개발할 때, 장바구니에 상품을 추가하는 기능을 여러 번 사용해야 할 경우 함수로 정의해 두면 코드의 중복을 줄이고, 수정이 필요할 때 한 곳만 수정하면 됩니다.

함수를 모른 채 프로그래밍을 진행하면 코드가 장황해지고, 각 기능에 대한 독립적인 관리를 할 수 없어 버그가 발생하기 쉽습니다. 따라서 함수 사용법을 이해하는 것은 프로그래머로서의 필수적인 역량입니다.

2. 핵심 개념 설명

함수

  • 정의: 특정 작업을 수행하는 코드 블록으로, 입력값을 받아 결과값을 반환할 수 있습니다.
  • 비유: 요리할 때 레시피를 생각해보세요. 레시피는 요리를 만드는 방법을 설명하고, 재료(입력값)를 조리한 후 요리(결과물)를 만들어냅니다.
  • 매개변수 (Parameters)

  • 정의: 함수가 실행될 때 외부로부터 받아들이는 입력값입니다.
  • 비유: 요리할 때 재료가 매개변수라고 할 수 있습니다. 같은 요리라도 재료를 바꾸면 다른 결과물이 나오죠.
  • 반환값 (Return Value)

  • 정의: 함수의 실행 결과로 반환되는 값입니다.
  • 비유: 요리를 완성한 후 그릇에 담아내는 것과 같습니다.
  • 용어정의
    함수특정 작업을 수행하는 코드의 집합체
    매개변수함수가 입력받는 값
    반환값함수가 실행 후 제공하는 결과값

    3. 기본 코드 예제

    using System;
    
    class Program
    {
        // 두 숫자를 더하는 함수 정의
        static int Add(int a, int b)
        {
            return a + b; // a와 b를 더한 결과를 반환
        }
    
        static void Main()
        {
            int result = Add(5, 3); // Add 함수 호출
            Console.WriteLine(result); // 결과 출력
        }
    }
  • 실행 결과: 8
  • 코드 설명:
  • - static int Add(int a, int b): Add라는 이름의 함수를 정의하며, 두 개의 정수 매개변수를 받습니다. 이 함수는 두 숫자를 더하여 정수를 반환합니다. - return a + b;: 매개변수 a와 b를 더한 값을 반환합니다. - int result = Add(5, 3);: Add 함수를 호출하여 5와 3을 더하고 그 결과를 result에 저장합니다. - Console.WriteLine(result);: result에 저장된 값을 콘솔에 출력합니다.

    4. 실전 활용 예제

    예제 1: 쇼핑몰에서 장바구니에 상품 추가

    using System;
    using System.Collections.Generic;
    
    class ShoppingCart
    {
        List<string> cart = new List<string>(); // 장바구니를 위한 리스트
    
        // 장바구니에 상품 추가
        public void AddItem(string item)
        {
            cart.Add(item); // 리스트에 상품 추가
            Console.WriteLine($"{item}이(가) 장바구니에 추가되었습니다.");
        }
    
        // 장바구니 내 상품 출력
        public void ViewCart()
        {
            Console.WriteLine("장바구니 내용:");
            foreach (var item in cart)
            {
                Console.WriteLine($"- {item}");
            }
        }
    }
    
    class Program
    {
        static void Main()
        {
            ShoppingCart myCart = new ShoppingCart();
            myCart.AddItem("사과");
            myCart.AddItem("바나나");
            myCart.ViewCart();
        }
    }
  • 이 코드는 쇼핑몰 장바구니의 상품을 추가하고 출력하는 기능을 구현합니다. 사용자에게 더 나은 경험을 제공합니다.
  • 예제 2: 학생의 성적 계산

    using System;
    
    class Program
    {
        // 성적 평균 계산 함수
        static double CalculateAverage(int[] scores)
        {
            int total = 0;
            foreach (var score in scores)
            {
                total += score; // 모든 성적을 합산
            }
            return (double)total / scores.Length; // 평균 반환
        }
    
        static void Main()
        {
            int[] scores = { 85, 90, 95 }; // 성적 배열
            double average = CalculateAverage(scores); // 평균 계산
            Console.WriteLine($"학생의 평균 성적: {average}"); // 결과 출력
        }
    }
  • 이 코드는 학생의 성적 배열을 입력받아 평균을 계산하여 출력합니다. 성적 처리를 간편하게 해 줍니다.
  • 5. 흔한 실수와 주의사항

    실수 1: 매개변수의 데이터 타입 불일치

    // 잘못된 코드
    static int Add(int a, string b) 
    {
        return a + int.Parse(b); // b를 정수로 변환하려면 int.Parse() 필요
    }
    
    // 올바른 코드
    static int Add(int a, int b) 
    {
        return a + b; // 매개변수 데이터 타입 일치
    }
  • 잘못된 코드에서는 문자열을 정수로 변환하지 않아 오류가 발생합니다.
  • 실수 2: 반환값을 사용하지 않음

    // 잘못된 코드
    static void PrintSum(int a, int b)
    {
        Console.WriteLine(a + b); // 반환값이 없는 void 함수
    }
    
    static void Main()
    {
        PrintSum(5, 3); // 결과를 활용하지 않음
    }
    
    // 올바른 코드
    static int GetSum(int a, int b)
    {
        return a + b; // 결과를 반환
    }
    
    static void Main()
    {
        int result = GetSum(5, 3); // 결과를 받아 사용
        Console.WriteLine(result);
    }
  • 잘못된 코드에서는 결과를 반환하지 않아 활용할 수 없습니다.
  • 6. 정리

  • 함수는 코드의 재사용성과 가독성을 높여줍니다.
  • 매개변수는 외부에서 입력받는 값이며, 반환값은 함수의 결과입니다.
  • 실생활의 비유를 통해 함수 개념을 이해하는 것이 중요합니다.
  • 다음에 학습하면 좋은 주제: 조건문과 반복문, 클래스와 객체.