2023. 10. 23. 12:41ㆍGame Develop/C# Programming
이번 시간은 저번에 했던 메서드에 반복문을 사용해서 응용해보는 시간을 가지려 한다.
반복문 심화
저번 반복문에서 다룬 while문은 다른 방법으로도 쓸 수 있는데 그것은 바로 do, while문이다.
while문과 do, while문의 차이점은 while문은 논리 값을 먼저 확인하고 참이면 반복문 내의 실행문을 실행했었다.
하지만 do, while문은 실행문을 먼저 실행한 다음에 논리 값을 확인하여 참이면 실행문을 실행하고 거짓이면 그대로 종료 된다.
다음은 do, while문의 기본적인 형태이다.
do
{
[실행문]
} while([논리 값]); // 세미콜론 필수!!
반복문에서 쓸 수 있는 또 다른 명령어 continue가 있다. 이것은 while문, for문 모두 사용할 수 있다.
continue : 계속하다. 이어서 하다.
while문 내의 실행문을 실행하다가 continue를 만나면 논리값을 확인하고, for문에서의 실행문을 실행하다가 continue를 만나면 실행문 2가 실행된다.
밑에 예시를 들어놓겠다.



메서드 심화
메서드는 기본적으로 매개변수를 받을 수 있다. 이 때 매개변수로는 그 변수의 값만이 전달되는데 메서드 내에서 그 변수의 값을 가지고 상호작용할 수 있지만, 그 변수 자체를 바꿀 수 없다.
예를 들어.


바뀔 것 같지만 바뀌지 않는다

못 믿을 사람들을 위해 Main에서 직접 바꿔 보겠다. Main에서 직접 바꾸면 변수의 값이 바뀔 것이다.


이렇게 자리가 바뀐 것을 확인할 수 있다.
그렇다면 어떻게 하면 매개변수 자체를 메서드 내에서 바꿀 수 있을까?
ref와 out을 쓴면 해결된다.
ref는 reference의 약어이다.
reference : 참조
out은 출력전용 매개변수로서 반환 값 외에 다른 결과 또한 출력하고 싶을 때 사용한다.
ref와 out을 사용해서 방금 했던 Swap()메서드에서 a, b의 자리도 바꾸고 이 둘을 나눴을 때의 값도 출력해보도록 하겠다.



자리도 바뀌고 몫도 바뀐 것을 확인할 수 있다.
마지막으로 오버로딩에 대해서 설명하고 이 포스트를 마치도록 하겠다.
overload : 과적재
메서드 오버로딩은 같은 이름을 가지고 다른 매개변수 형식을 가진 메서드를 사용할 수 있다.
컴파일러가 컴파일을 할때 같은 이름의 메서드를 모두 가지고 와서 매개변수를 통해 분류한다. 그렇기 때문에 매개변수만 다르다면 충분히 컴파일러가 어떤 메서드를 호출하려고 하는지 구분할 수 있지만, 반환 형식'만' 다른 경우에는 사용할 수 없다. 컴퓨터가 무슨 메서드를 호출해야 하는지 구분할 수 없기 때문이다.
예시.



이렇게 원하던 값이 잘 출력된 것을 확인할 수 있다.
이번 포스팅은 여기서 마치도록 하겠다.
'Game Develop > C# Programming' 카테고리의 다른 글
C# Practicing(클래스 심화(깊은 복사 VS 얕은 복사)) (1) | 2023.10.23 |
---|---|
C# Practicing(클래스) (0) | 2023.10.23 |
C# Practicing(메서드) (0) | 2023.10.22 |
C# Practicing(배열) (0) | 2023.10.21 |
C# Practicing(반복문) (1) | 2023.10.21 |