본문 바로가기

C#/Today I Learned

(7)
후입 선출 Stack? Q) 다음 코드의 출력 결과를 작성하고, 왜 그렇게 되는지 이유를 설명해주세요.이 코드는 스택(Stack)을 사용하여 정수를 추가하고 삭제한 후에 출력하는 간단한 예제이다스택은 후입선출(LIFO, Last In First Out) 구조를 가지고 있기 때문에 마지막에 추가된 요소가 가장 먼저 제거된다여기서는 다음과 같은 과정을 거치게 된다스택에 1을 추가스택에 2를 추가스택에 3을 추가.스택에서 요소를 제거. 여기서는 가장 최근에 추가된 3이 제거2를 출력.스택에 4를 추가스택에 5를 추가
전위연산자 후위연산자? 자기객관화를 위해서 응시해 보았던 코딩테스트에 나온 연산자 문제이다.여기서 출력되는 값과 그 이유는 무엇일까? 내가 제출했던 답안이다. 틀렸다. 왜냐하면 전위 연산자 개념과 후위 연산자 개념을 정확히 알고 있지 못했기 때문이다 ++y 는 전위 증가 연산자이므로 y가 먼저 1 증가되고, 그 후에 연산이 수행x++ 는 후위 증가 연산자이므로 x의 현재 값인 10을 출력하고 나서 x를 1 증가 따라서 출력되는 값은 10이 되고, 출력 직후에 x는 11이 된다 이런 경험을 해보니 아직 기본이 한참 부족하다고 느껴지는 시간이었다
추상클래스 실전에서 사용해보기 추상클래스를 사용하여Main / LoginScene / StartScene / StatusScene이 세 가지 스크립트에 정보를 저장하는 것을 해봤다. 이게 왜 어려웠을까? 기존에는 단순히 Character 클래스에서 정보를 전달하면 되었지만,이번에 어려움을 겪은 부분은 직업을 선택하도록 설계하는 과정에서데이터를 인수 인계가 원활하도록 하는 부분이었다. 직업을 선택한다는 것은 Character 클래스로부터 파생시켜 Warrior 와 Wizard 로 각각의 클래스에 상속시킴으로써객체 지향 프로그래밍을 한다는 것에 의의가 있다는 점이다.즉, Character 클래스를 추상클래스로 전환시켜서 사용한다고 할 수 있다. [ 구성 ]메인에서 메서드 호출  ㅡ>  로그인 화면  ㅡ>  게임 시작 메뉴 ㅡ>  캐릭터 ..
틱택토 - 턴제 형식 A턴과 B턴으로 나눴으며A턴은 동그라미를 사용하고 B턴은 엑스를 사용한다 짜증났던 부분잘못된 위치를 입력하면 다시 입력시키도록 유도하기 위해서 else로 처리하려 했는데문구가 한 번만 출력되는게 아니라 9번 나왔다.이 코드 블록에서 for 루프는 사용자가 입력한 위치를 게임 보드의 위치와 비교하여 유효한 위치인지를 확인한다.만약 사용자가 잘못된 위치를 입력했다면,즉 사용자 입력이 게임 보드의 어떤 위치와도 일치하지 않는 경우에 해당하는 상황을 처리하기 위해 사용한다.여기서 else if (i == arr.Length - 1)은 for 루프에서 현재 반복이 배열 arr의 마지막 요소에 도달했을 때를 나타낸다.즉, i가 arr.Length - 1과 같을 때라고 하면 9번출력되던 문제를 1번만 출력되게 설정할..
캐스팅 사용 예시 ④ C# 캐스팅 (tistory.com) ④ C# 캐스팅캐스팅 = 형변환 변수를 사용할때 사용하고 있는 자료의 형태를 변환 해야하는 상황이 나올 수 있다. 예) string → int, string → bool 여러가지의 자료형이 있는 만큼 다양한 상황에서의 형변환이 있yoonwoojoo.tistory.com int.pase int.trypase
우주의나라 클래스 맛보기 및 TIL 처음으로 클래스라는 것을 사용해 보았다.세분화하여 작업하기 때문에 확실히 가독성이 좋고 효율적이다.하지만 하드코딩으로만 코딩해와서 생각나는데로 적으면서 내려갔었던거랑은 달리클래스를 사용하게되니 각각의 클래스별로 정상적으로 기능하고 서로 호환될 수 있도록 시나리오를 상정하는 부분들이 낯설다.자주 애용해왔던 string input = ConsoleReadLine(); 에서 if(string == input) 으로 이어지는 콤보대신에 새로운 클래스에 해당 기능을 저장해놓고 case를 사용하는 식으로 하니 간편하였다.위의 코드는 string을 사용하는 문자열이지만 정수를 사용하는 int같은경우로 만드려면if ( int.tryparse(~~~,out @) 과 같은 형식으로 @을 리턴값으로 반환하면 된다.
숫자 맞추기 게임 0부터 100까지의 숫자 값을 자료형 int를 사용하여 배열형식으로 만들었고자료형 int를 사용한 새로운 변수 x를 만든다음에 배열에 있는 숫자값 중에 랜덤하게 하나를 선택하도록 설정 string input = Console.ReadLine(); 으로 입력창을 구성 입력변수 input을 x와 비교하려면 일단 string으로 되어있어서 캐스팅을 해야했는데기존에 계속사용해왔던 int.parse 를 활용하는 시나리오를 상정하였으나 코드를 작성하는데 어려움이 생겼다.그래서 한번도 사용해본적 없던 int.tryparse를 활용하고 out 시킨 변수는 string이 아닌 int형이므로이 out 시킨 변수를 x와 비교하는것이 가능하게 되었고 이에 따라 부등호를 사용하기위한 조건문을 수행하였다.처음으로 실전에서 트라이..