본문 바로가기

교육 노트/C# 강의

[C# 때려잡기] C# 강의 9. 메소드 (함수)

프로그램을 만들다보면 중복해서 사용되는 기능들이 나오게되고

이걸 죄다 복붙을 통하여 해결하다보면 코드가 지저분해지고 길어지게 된다.


C#에서는 이러한 기능을 묶어 재사용할수있도록 일종의 모듈화가 가능한데

그것이 바로 메소드(함수)이다

C++ 강의자료 복붙이라 이후부터는 함수라 칭하도록 하겠다.


1.함수란


특정한 기능을 수행하도록 나눠진 작업 단위,
수학에서의 함수와 비슷한 의미를 가진다.


C# 에서 함수는 다음과 같은 구조를 가진다

<리턴타입> <함수이름> (<매개변수>)

{

  <함수 본문(내용)>

  return <리턴값>;

}


리턴타입은 돌려주는 리턴값이 어떤 변수 타입인지를 의미하고

매개변수느느 해당 함수에 넘겨줄 값을 의미한다.


위 구조대로 들어온 값에 1을 더하는 기능을 하는 함수를 만들어보면


int plusOne(int x)

{

int y = x + 1;

return y;

}


다음과 같다.

대충 이러한 구조를 띄는데


사용하기 전에


static int PlusOne(int x)
{

int y = x + 1;

return y;

}

과 같이 static을 앞에 붙여주도록 하자.

static은 정적 함수를 만드는것으로 객체가 아닌 클래스에 따라 작동하는 함수인데..

객체지향을 배우기 전이므로 그냥 일단 적어주도록 하자.


함수를 사용할때는 함수이름(매개변수)와 같이 사용하며 이를 함수를 호출한다고 한다.

위 함수를 사용한다고하면

int a = plusOne(10);

을 하면 plusOne 함수에 10이 매개변수로 들어가고 11이 리턴되며 

11은 그 함수가 호출된 자리로 돌아간다.

즉 int a = 11이 되고 a는 11이 된다.


using System;

namespace HelloWorld
{
class Program
{

static int PlusOne(int x)
{

int y = x + 1;

return y;

}

static void Main(string[] args)
{
int x = PlusOne(10);
}
}
}


함수를 만드는 방법을 알았으니

두숫자를 더하는 함수를 만들어보자


using System;

namespace HelloWorld
{
class Program
{

static int Plus(int x,int y)
{
return x + y;
}

static void Main(string[] args)
{
int x = 10;
int y = 5;

int z = Plus(x, y);
Console.WriteLine(z);
}
}
}


해당 함수의 동작과정은 다음과 같다.

1. 함수의 인자값으로 x,y가 들어간다 x,y값은 각각 10과 5 이므로

Plus(10,5)와 같다.

2. 인자값이 전달된다.

이제 Plus함수에서 x는 10, y는 5이다.



3. 해당 인자값을 사용하여 함수 내용을 실행한다.


4. return을 만나면 함수가 종료되며
return된 값이 해당 함수를 호출한 지점으로 들어간다.
따라서 z = 15가 된다.

728x90