메서드(함수) ?
어떤 값을 받아서 그 값을 가지고 가공을 거쳐 어떤 결과 값을 반환
동일한 코드를 반복하여 사용할 수 있도록 하나의 이름으로 만들어 놓은 집합
프로그램 코드 내에서 특정한 기능 처리하는 독립적인 하나의 단위 또는 모듈
어떤 값을 처리하라고 넘겨주는 값은 문자열, 숫자 등이 있으며, 이를 가리켜 인수, 인자, 파라미터, 매개 변수 등으로 부르는데 현재 시점에서는 모두 같은 개념으로 보면 된다.
a. 매개변수(Parameter)가 없는 함수
b. 매개변수(Argument)가 있는 함수 : Sub Procedure
c. 반환값이 있는 있는 함수 : Function
매개변수(Parameter)가 없는 함수
// 함수 : 서브 프로시저, 부 프로그램
using System;
public class 매개변수가없는함수
{
public static void Main()
{
//매개변수가 없는 함수
int num = 1234;
//매개변수, 인자, 등 넘기는 값이 없다.
string str = num.ToString(); //변수의 내용을 문자열로 변환
Console.WriteLine(str); //1234 출력
//사용자 정의 함수
Hi(); //"안녕"을 출력하는 함수를 만들어보자
Hi(); // 함수호출(call)
}
//접근 한정자(Access Modifier)는
오늘까지는 public static void 함수명() {}
//함수 선언
public static void Hi() //함수,메서드 이름은 첫자만 대문자로 사용
{
Console.WriteLine("안녕");
}
}
매개변수(Argument)가 있는 함수
// 매개변수 = 파라미터 = 인자 = 인수
// Parameter == Argument == 가인수 == 실인수
//넘겨주고 받는 값을 저장하는 변수
using System;
public class 매개변수가있는함수
{
public static void Main()
{
Hello("안녕");
Hello("방가");
Hello("또봐");
Say("낼봐", 3);
//Quiz : 아래기능을 하는 함수를 설계해보시오..
Calc(3, '+', 5); //8
Calc(3, '-', 5); //-2
}
//덧셈 뻴셈을 하기 위한 함수
public static void Calc(int a, char p_2, int b)
{
//input
int result=0;
//process
switch (p_2)
{
case '+' : result = a + b; break;
case '-' : result = a - b; break;
default:
break;
}
//output
Console.WriteLine(result);
}
//Hello 호출하여 방가,또봐 출력하는 함수
public static void Hello(string msg)
{
Console.WriteLine(msg); //넘겨온 파라미터 값을 출력
}
//Hello 호출하여 '또봐' for문에 의해서 3번 출력하는 해주는 함수
public static void Say(String msg, int cnt)
{
for (int i = 0; i < cnt; i++)
{
Console.WriteLine(msg); // 2번째[인자]값만큼 출력
}
}
}
반환값이 있는 있는 함수 : Function
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleFunction
{
public class 반환값이있는함수
{
public static void Main()
{
//1. Input
int firstNumber = 10;
int secondNumber = 20;
int hap = 0;
//2. process : Main 함수의 주체
hap = Sum(firstNumber, secondNumber);
//3. output
Console.WriteLine("{0} + {1} = {2}",
firstNumber,secondNumber,hap);
//Direct로 덧셈결과를 확인하고 싶을때...
//Console.WriteLine(Sum(100,150)); // 250
}
//sum 함수는 process 관점이다 : 두수의 더한 값을 반환해주면 됨.
public static int Sum(int a, int b)
{
int r;
r = a + b;
return r; //a+b한 값을 리턴(반환)
}
}
}
절대값 변환 관련
using System;
public class 절대값
{
public static void main()
{
MakeLine(); //================
ShowTile("절대값");
int result = Abs(-10); //result에는 10이 담긴다.
Console.WriteLine("{0}", result); //10
}
//1.매개변수도 없고 반환값도 없는 함수(메서드)
public static void MakeLine()
{
Console.WriteLine("=============");
}
//2. 매개변수가 있는 함수
public static void ShowTile(string title)
{
Console.WriteLine("{0,15}", title);
}
//3. Abs() 함수 : 넘겨온 정수의 절대값을 구해서 반환시켜주는 함수
public static int Abs(int num)
{
//int r;
//if (num > 0)
//{
// r = num;
//}
//else
//{
// r = -num;
//} // 넘겨온 값이 마이너스이면 -(음수) 기호로 +로
return (num > 0) ? num : -num;
}
}
정수 입력 매개변수 입력 받아 합계 출력
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 합계
{
class Program
{
static void Main(string[] args)
{
//1. input
int[] data = new int[3];
for (int i = 0; i < data.Length; i++)
{
Console.WriteLine("{0}번째 정수 입력 : \b\b", (i+1));
//정수형 변환
data[i] = Convert.ToInt32(Console.ReadLine());
}
int sum = 0;
//2. process
sum = Hap(data);
//3. Output
Console.WriteLine("합계 : {0}",sum);
}
public static int Hap(int[] data)
{
int sum = 0;
for (int i = 0; i < data.Length; i++)
{
sum += data[i];
}
return sum;
}
}
}
매개변수 입력받아 제곱 출력
using System;
public class 제곱
{
public static void Main()
{
//2의 10승 : 1024
//2의 20승 : 1048576
//3의 3승 : 3*3*3 = 27
Console.WriteLine(Math.Pow(2, 20)); //1048576
//아래 함수를 만들자
Console.WriteLine(MyPow(2, 10)); //1024
Console.WriteLine(MyPow(3, 3)); //27
Console.WriteLine(MyPow(2, 20)); //1048576
}
//myPow 함수를 설계 보시오. 시행착오법을 거치세요
public static int MyPow(int a, int b)
{
int result = 1;
for (int i = 0; i<b; i++)
{
result *= a; //1*a*a*a*...
}
return result;
}
}
'.Net Project > .Net C#' 카테고리의 다른 글
16장 DateTime(날짜관련) (0) | 2009.08.06 |
---|---|
15장 구조체(Struct), 열거형(Emumeration) (0) | 2009.08.06 |
13장 알고리즘(Algorithm)의 이해 (0) | 2009.08.05 |
12장 Consoal Array (0) | 2009.08.05 |
11장 컬렉션 반복 (0) | 2009.08.05 |