게임개발/C#

24-08-15 코딩실습과정+

몰록 2024. 8. 16. 01:00

이날은 쉬는날이였지만 전날에 이해를 제대로 못했던 걸 보충하는 시간을 가졌다.

같이 고민해볼 팀원은 모이지 않았으나 나에겐 든든한 우군이 있었으니 그건 나의 친형.. 친형도 스파르타 코딩에서 수업을 받은 사람이고 취업에 성공한 개발자라서 도움이 될수 있었다

 

내가 이해 못했던것은 다음과 같았다.

 

TryParse와 if문을 이용해서 이 문제를 푸는것인데..

제공된 TryParse 함수에 대한 설명

TryParse() 함수에대한 이해가 부족했다. 뭘 바꾸고 싶다고? 뭘 저장하겠다고?? 뭘 어디서 가져와???

하지만 형이 열심히 설명해주고 문답해준 덕에 결국 깨우칠수 있었다.

 

TryParse 란 데이터를 변환을 시도하는 함수로, 변환에 성공할경우 bool값으로 변환에 성공했는지 아닌지의 값을 참과 거짓으로 가져간다. 그렇게 변환한 값은 out 뒤에 오는곳에 저장되는것.

 

다시 문제로 돌아와서 

 

이 문제를 TryParse를 응용해서 만들수 있다는건 숫자열, 혹은 문자열값으로 입력값을 변환을 시도하고, 시도의 결과에 따라 다른 문장을 출력하게 할수 있는것이였다.

 

그래서 이렇게. Int 함수로 입력받은값을 변환을 시도하고, 변환한 값은 num에 저장. 그리고 변환 성공 여부는 bool isInt가 가지는 것이다.

 

나는 10을 입력했으므로 isInt의 데이터는 True. 즉 숫자입니다가 출력된다.

 

여기서도 이해가 안되는 부분이 있었는데 isInt가 True 이든 False든 isInt는 그대로 isInt인데 왜 if에 isInt만 들어가는가?

그 문제의 대한 형의 대답은 if문은 암묵적으로 '만약 ( ) 가 사실이라면' 을 내포하고 있기 때문이라고 한다.

 

즉 isInt의 True일때만 작동하고, 그렇지 않으면 else로 빠지는것이다.

 

이 작동방식을 이해한 나는 다음 문제가 어렵지 않게 느껴졌다.

두번째 문제는 입력 데이터가 숫자인지 문자열인지 불리언인지 구분하는 코드를 만드는것

int.TryParse(input, out num)) 이 코드 하나가 True or False가 되므로, if 안에 들어가도 무방하다는 발상이였다.

cat은 두 값중 하나일수도 있다는 것에서 슈뢰딩거에 고양이가 생각나서 저렇게 이름을 지었다

 

제시된 답지. 내가 취한 방식과는 다르지만 결과는 같다.

형의 두 답안의 평가는 내 방식은 불러오기가 더 빠르고 제시된 답지의 방식은 프로그래머에게 더 좋은 가독성인 코드라는 것.

 

하지만 이부분은 기초적인 부분이라 가독성을 좀 해쳐도 내 방식이 더 나을수도 있다고. 야호~!

 

다음 문제는 일단 숫자인걸 판단하고, 숫자라면 100보다 큰지 작은지를 구분하는것
제시된 답지. 역시 방식은 다르나 결과는 같다.

이번 문제에선 형이 가르쳐준걸 사용했다. 바로 함수 앞에 !를 붙이면 NOT 이라는 뜻이라는거다.

이걸 이용해서 먼저 숫자인지 아닌지를 먼저 걸러내고 그 뒤에 숫자의 경우를 만들어줬다.

 

제시된 답지는 if문 안에 if문을 넣는것. 그렇게 먼저 숫자를 구분하고 그것이 아닐경우 숫자가 아니라고 출력하는방식이다.

 

마지막 문제. 데이터가 숫자라면 짝수인지 홀수인지를 구분.

숫자를 2로 나누었을때 나머지가 0이라면 짝수라니. 수포자로 학창시절을 보냈지만 역시 기본 논리를 책임지는 수학의 세계는 놀랍다. 역시 이해한대로 해냈다. ( 다만 = 과 == 의 구분때문에 약간 헤맸다. )

 

제시된 답지. 역시 결과는 같다.

나머지라는 뜻의 remainder라는 이름을 붙여주고 if 속에 나머지를 구하는 코드를 삽입한것이 달랐다. 하지만 역시 결과는 같다.

 

역시 제대로 이해하고 넘어가길 잘했다고 생각한다. 앞으로가 기대된다!

'게임개발 > C#' 카테고리의 다른 글

24-09-20 C# 프로그래밍 기초 02  (0) 2024.09.20
24-09-19 C# 프로그래밍 기초 01  (2) 2024.09.19
28-08-16 코딩실습과정 ++  (0) 2024.08.16
24-08-14 코딩실습과정  (0) 2024.08.14
24-08-13 TIL : C# 사전 문법 기초  (0) 2024.08.13