C#/Study

[C#] 이것저것, 함수 / 선언 / 변수 / 배열

Jee-U 2025. 2. 11. 21:46

 

나에게 게임개발 배우는것을 권유한 친구와 초췌한 모습으로 영상통화를 하면서 친구가 하고있는 플젝에 대해 하소연을 들어주고 있었는데, 예전같았으면 친구가 아주 유치원생 수준에 맞춰 얘기해주는것도 그게뭐야? 하던 내가 드디어 무슨상황이구나 하고 알아듣는것에 친구의 속상한 마음과는 달리 어어? 하면서 웃고있었다.

그러다 문득 내 표정을 깨달은 친구가 축하해주고 있던 와중 나의 수준에 잘 맞춰 설명해주는 새벽 2시가 되어가 자려고 하는 상황에서 내 친구에게 내가 모르는 기초적인 질문들을 좀 했다.

(친구는 C#을 사용하진 않으나 큰 기본적인 틀에 대해서는 내가 처음 공부할 당시부터 자주 설명해주었다)

 

 

내가 햇갈렷던것 중 제일 큰 하나는 함수였는데, 햇갈리기 보다는 함수에 대해 아직 이해를 제대로 하지 못햇다는 것이 맞는듯 하다.

TextRpg에서 작성했던 포션 충전 코드

Q. 나는 계산식만 들어가면 다 함수인가 라는 착각이 있어 혹시 위 내용도 함수냐고 물어보았다.

A. for문은 함수가 아닌 특정 조건이 만족될 때 까지 코드를 실행하는 제어문(반복문)이다. 그래서 함수가 아닌 문법이다.

= 클래스, 메서드는 함수로 해당 코드에선 GiftPotion이 함수이다.

= 추가로 if도 문법이다

 

 

TextRpg에서 작성했던 스탯별 데미지 환산 코드

Q. 이것도 계산식인데 함수 아니냐

A. switch/case는 함수가 아닌 하나의 변수값을 여러개의 경우와 비교하여 실행할 코드를 선택하는 문법 이다.

 

Q. float basedamage = damage; 이런거는?

A. 변수 선언이다.

= 나는 public int level 이런것만 변수로 선언하는건줄 알았는데 저런 경우도 전부 변수라고 한다.

 

 

함수에 대해 쉽게 설명해준 것은

"함수는 매게변수를 받을 수 있고 특정 작업을 수행, 행동을 할 수 있어야 하며, 필요하다면 결과를 반환할수 있어야 한다." 라는것이었다.

(함수명(매게변수){행위 return 반환값}

반환타입 함수명(메개변수)
{
	retrun 반환값; // 선택사항(반환할 값이 있을 경우)
}

 

 

다만 친구는 게임개발이 아닌 프론트/백쪽 공부하였으며 현재는 주로 js를 다루고 있어 처음엔 함수에 대한 개념을 조금 다르게 설명해주었다가 C#과는 다른걸 깨닫고 바로 정정하여 완벽히 이해하게 도와주었다. 결론적으론 내 기준에 맞춰 잘 이해되었으니 나는 해피하다! (와는 별개로 늦게자서 지금은 좀비다)


 

조장님과 조원분들도 내 눈높이에 맞춰 여러가지 알려주고 계시는데, 그중 인상깊게 기억낫던 하나는 배열(Array)였다.

나의 눈높이에 맞게, 로아를 좋아하는 나를 위해 예시를 들어주셨다.

 

"우리가 로아 숙제 중 카/에/베를 가려고 하는데 뭐를 갈까? 에키드나 가자." 라는걸 코딩으로 하고싶다.

베히=3 X, 2가맞음

// 로스트아크 숙제 카에베
// 카멘 = 0
// 에키드나 = 1
// 베히모스 = 2
// 숙제가 3개여도 숫자는 0부터 시작으로 위와같이 된다.

string[] 숙제 = { "카멘", "에키드나", "베히모스" };

Console.WriteLine(숙제[1]);
// 출력 : 에키드나

에키드나를 가고싶은 우리는 숙제[1]이라고 하며, 1번에 있는 에키드나로 출력이 되어 에키드나 가자가 된다.

 

 

 

다른것도 쉽게 알려주시는 우리 조장님과 조원분들.. 이번 조도 최고다, 너무너무 감사한분들..!

- 사실 조원분들께는 너무 바빠보이시고 해서 이번엔 더더 혼자 하고 여쭤보질 않앗는데, 나중에 얘기해주시기론 뉴비보는게 재미있어서 알려주는것도 재미있으시다고 한다. 그래서 지금은 마구마구 물어보는중!