main 함수를 길게 썼을 때 잘 수정할 자신이 있는가?
bool isPossible?
일단 저는 false 입니다.
고로 함수화를 바로바로 해주는 게 살길이라는 생각이 듭니다. 그림 그릴 때도 레이어 정리를 하지 않는 자는 수정이 오래 걸리더군요. 그러니 긴 메인 함수가 제게 죄악으로 보이는 것도 그렇게 큰 비약은 아닐 겁니다.
그리고 주석도 그때그때 잘 달아두겠습니다.
강화 선택지를 만들고 있었죠.

단순 출력은 어려운 일이 아니지만 어줍잖은 함수를 만들다 오류가 뜬 게 보입니다.

다른 오류 메세지는 인정할 수 있지만 중괄호 짝은 뭔지 모르겠습니다. 짝 다 맞춘 줄 알았는데? 언제쯤 이런 기초 실수에서 벗어날 수 있을까요. 일단 납득할 수 있는 오류부터 고치겠습니다.
우선 name이 선언되지 않은 식별자라 뜨는 걸 보니 함수 내에서 변수를 받을 수 있게 만들어주겠습니다.

그리고 choice는 그냥 밖으로 빼주겠습니다.
나 새로 만들어진 매개변수야~ 를 알려주는 게 더 좋아보입니다. 그리고 호출 용이성 부분에서 그게 더 편리할 듯 합니다.

짧아진 main에 마음이 편안해집니다.
그리고 오류를 수정하니 중괄호 오류도 자연스레 사라졌습니다. 뭐였을까요. 제가 뭔가 정말 말이 안되는 문자를 적어 컴파일 중 작은 오해가 생겼나봅니다. 소통을 통해 원활하게 해결했습니다.
정리해보면
- 함수 정의 할 때 받아야 하는 변수를 체크
- 함수 내부에서만 쓰이는 변수는 안에서만 선언하는 게 효율적
이렇게 볼 수 있겠습니다.
고민인 지점 : Upgrade 함수를 Chatacter.cpp로 이사를 보내는 게 나을까 싶군요. main은 간결할 수록 나을 듯 하니 말입니다. 이사도 보내주고 헤더 파일에도 바로 정리하겠습니다.
어이쿠, 근데 switch를 써보기로 했는데 잊었군요. 무심코 익숙한 길을 가게 됩니다.
이에 앞서 swich와 if문을 어떻게 구분해서 선택하는가가 궁금하군요.
switch가 어울리는 경우
- 하나의 값이 여러 경우 중 무엇인지 비교할 때
- 선택지가 명확하게 정해져 있을 때
- 예: 연산자, 메뉴 번호, 상태값, 등급 코드
if문이 어울리는 경우
- 크다, 작다, 이상, 이하 같은 범위 비교가 필요할 때
- 여러 조건을 AND/OR로 조합해야 할 때
- 조건식이 복잡할 때
- 예: 점수 구간, 나이 제한, 0으로 나누기 검사
즉, switch는 값이 딱 떨어지는 선택지 비교에 좋고, if문은 조건을 판단하는 폭이 넓을 때 좋다고 합니다.
의문이 해결되었으니 수정해보겠습니다.
if문과 구분되는 switch의 또다른 특징은 항상 break를 써 빠져나와야 한다는 점입니다.

오류는 없지만 while에서 빠져나갈 수 없습니다.
bool 변수를 조정해보겠습니다.

초기 isGamestart 변수를 false로 둔 뒤 조건을 isGamestart가 true가 될 때로 변경합니다. 그리고 case 0일 때 true로 바꿨습니다.

잘 빠져 나오는군요.

게임 시작은 되지만 같은 번호를 눌러도 포션이 줄어들지 않습니다.
당연합니다. 아직 만들지 않았기 때문입니다.