학습
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); // 결과 출력
}
}
- 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);
}