using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// C# 메서드(Method) //C, C++ 함수(Function)
// 용도 : 코드를 재활용하기 위한 용도로도 사용이 되고,
// 절차지향적 언어에서 부품(기능)을 만드는 용도로도 사용된다.
// 즉, 메서드란 코드를 재활용 하거나 코드를 부품화하고 싶을 때 사용하는 문법
// 매개변수, parameter, 인자(인수)
// 인자 == 매개변수
// 인수 == 넘기는 값
// [접근 수식자] 리턴형 메서드이름(데이터형 매개변수, 데이터형 매개변수, ...)
// {
// 실행코드
// }
// 리턴형과 매개변수에 따른 메서드의 종류
// 1, 리턴형과 매개변수가 모두 존재하는 형태
// 2, return 형이 없고, 매개변수가 있는 형태
// 3, return 형이 없고, 매개변수도 없는 형태
// 4, return 형이 있고, 매개변수는 없는 형태
public class Test_1 : MonoBehaviour
{
//1, 리턴형과 매개변수가 모두 존재하는 형태
public int Sum(int a, int b)
{
int c = a + b;
return c;
}
//2, return 형이 없고, 매개변수가 있는 형태
public void Hamsu(int Kor, int Eng, int Math)
{ //void : 리턴값이 없다는 의미
int a_Hap = Kor + Eng + Math;
Debug.Log("총점 : " + a_Hap);
//void : 리턴값이 없다는 뜻으로 생략 가능하다.
if (a_Hap < 20)
return; //<-- void형 함수에서 return이라고만 써주면 함수를 즉시 빠져 나가게 된다.
Debug.Log("평균 : " + (a_Hap / 3.0f).ToString("F2"));
}
//3, return 형이 없고, 매개변수도 없는 형태
public void PrintGuGuDan()
{
int a_Dan = 7;
for (int ii = 0; ii < 10; ii++)
Debug.Log(a_Dan + " * " + ii + " = " + (a_Dan * ii));
}
//4, return형이 있고, 매개변수는 없는 형태
float m_Velocity = 10.0f;
public bool IsMove()
{
if (m_Velocity <= 0.0f)
return false;
return true;
}
// Start is called before the first frame update
void Start()
{
int AAA = MyMethod(111, 222); //<-- 메서드의 호출(메서드의 사용)
int BBB = MyMethod(12, 34);
int CCC = MyMethod(77, 88);
Debug.Log(AAA + " : " + BBB + " : " + CCC);
//Sum(11, 23); //<-- 리턴형이 있는 함수여도 리턴값을 받아서 사용하지 않아도 된다.
//int ABC = Sum(11, 22) + 99;
Debug.Log(Sum(11, 22)); //<-- 메서드의 호출
Hamsu(100, 2, 3); //<-- 메서드의 호출
PrintGuGuDan(); //<-- 메서드의 호출
bool Result = IsMove();
if (Result == true)
Debug.Log("움직이고 있어");
else
Debug.Log("멈춰 있어");
}
// Update is called once per frame
void Update()
{
}
public int MyMethod(int a, int b) //<-- 메서드의 정의(설계도)
{
int c = a + b;
return c;
}
}