두 번째 팀프로젝트 [TextRPG/프로그래밍기초주차] -2

2025. 10. 21. 10:08개발

 

 

난리다 난리야.... 

오전 내내 발표자료 제작한거 다 날려먹고,

오후에 바쁘고 일 밀렸는데 오전작업분꺼 싹 다시 처리하느라

진짜 마우스 폭풍처럼 움직였다 ㅋㅋ

 

 

 

 

 

 

그치만 시간 내에 여유롭게 완성했죠?

 

나도 이정도면 능력자야

 

 

 

 

 


 

 

 

 

오늘은 그동안 바빠서 작성 못한

트러블슈팅 작성하겠습니다.

5분 기록보드를 작성해두니, TIL작성할 때도 편하네요!

 

 

 

 

 

 

 

들어가며✨

 

 

튜터님께서 "디버깅 능력이 코딩능력이다."라고 하셨는데, 그 때는 그 말을 이해하지 못했다.

그러나 디버깅을 찍어보면서 사람의 사고와 컴퓨터적 사고는 다르다는 것을 체감했다.

 

내가 미처 건너뛰고 있는 부분에서 컴퓨터는 하나하나 세세하게 체크를 하고 있었다.

이게 아직 개념이 안잡힌 메모리와도 연관이 된다. 그래서 메모리개체에 대한 개념을 잡아갈 때

디버깅을 해본 경험이 유용하게 되겠다. 또 꺾새 하나하나도 컴퓨터는 다 체크를 한다는 것이 마음에 들었다.

역시 실수를 하는건 나다. ㅎㅎ 지금부터 디버깅하는 습관을 들여놓으면, 코드 읽는 능력이 매우 향상 되겠다!

 

 

 

 

✓트러블슈팅 

 

 

✓문제점 1.

스타트씬에서 (input==0)을 누르면 출력이 되어야하는데 안되는 상황

 

 

 

 

 

✓ 첫 번째 시도

 

디버깅을 해보면서 해결해보았다. 

디버깅을 해보니 0번의 조건이 걸리면, 그 다음에 게임매니저로 넘어가게 되었다.

그래서 이를 방지하기 위해 break;를 써보았다.

그러나 해결되지 않은 이동이라는 오류가 떴다. 

 

 

✓두 번째 시도 (해결)

 

그래서 return;을 써보니 바로 잘 작동이 되었다. 

 

 

 

✓알게 된 점

 

break;와 return의 차이

 

break;와 return;은 둘 다 "멈춘다"는 느낌이니까 초보자가 헷갈리기 쉽다.

이 둘은 비슷해보이지만, 실제로는 멈추는 범위가 다르다. 

 

break;는 반복문에서 사용하고 해당블록만 탈출한다.

return;은 모든 메서드에서 사용이 가능하고, 메서드 전체를 종료하고 호출한 쪽으로 즉시 돌아간다.

 

더보기

1️⃣ break와 return의 차이 복습

키워드사용 가능 위치동작 범위
break 반복문(for, while, foreach), switch 해당 블록만 탈출
return 모든 메서드 메서드 전체를 종료하고 호출한 쪽으로 즉시 돌아감
  • 중요 포인트: return은 반복문 안이 아니어도 어디서든 쓸 수 있어요.
  • 반면 break는 반복문이나 switch 안이 아니면 문법 오류 납니다.

 

 

break;

 

반복문(for,while,foreach)나 switch문 안에서 사용 가능해.

블록만 탈출하고, 매서드 전체는 계속 실행된다.

 

for (int i=0; i<5; i++)
{
    if (i==0)
    break; //for문만 종료됨
    Console.WriteLine(i);
}
Console.WriteLine("for문 밖 코드 실행됨");


출력: 0
	 1
for문 밖 코드

 

더보기

🔍 흐름 해석

  1. for (int i = 0; i < 5; i++)
    • i는 0부터 시작해서
      5보다 작을 동안 1씩 증가하면서 반복돼.

  1. i = 0일 때
    • if (i == 2) → ❌ (0은 2가 아님)
    • Console.WriteLine(i); → 0 출력

  1. i = 1일 때
    • if (i == 2) → ❌ (1은 2가 아님)
    • Console.WriteLine(i); → 1 출력

  1. i = 2일 때
    • if (i == 2) → ✅ (조건 참)
    • break; → for문 즉시 종료
    → 더 이상 i=3,4는 실행되지 않아.

  1. for문 종료 후
    • Console.WriteLine("for문 밖 코드 실행됨");
    • 이 문장은 반복문이 끝난 뒤 실행됨.

 

아-하! 반복문 안에서 조건문에 break;가 걸려있을땐 이렇게 실행이 되는구나

 

 

 

 

 

 

 

return;

 

현재 메서드 자체를 완전히 끝냄.

아래 코드들은 실행되지 않고 바로 빠져나감.

 

void Test()
{
    Console.WriteLine("시작");
    return;
    Console.WriteLine("이건 당연히 실행 안됨");
}

출력: 시작

 

 

 

✓결론

 

나는 조건문을 쓰고 있으니 break;는 문법적으로 쓸 수가 없었다. 

나는 이 구문에서 return;을 쓰는게 맞았음!