Inflearn brand logo image

인프런 커뮤니티 질문&답변

정문경님의 프로필 이미지
정문경

작성한 질문수

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

배열 실습

섹션4 배열실습 질문입니다.

작성

·

91

0

배열을 통해 콘솔에 5x5 맵을 표현하는 부분에서

 

while (true) {

HANDLE output = ::GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos = { 0, 0 };

::SetConsoleCursorPosition(output, pos);

for (int y = 0; y < MAP_SIZE; y++) {

for (int x = 0; x < MAP_SIZE; x++) {

switch (GMap2D[y][x]) {

case 0:

cout << " □ ";

break;

case 1:

cout << " ■ ";

break;

case 2:

cout << " ● ";

break;

}

}

cout << endl;

}

}

위와 같이 메인에 함수에 축약해서 코드를 짜놓았습니다. (실제로 헤더와 추가 cpp에서 도는것을 질문하기 쉽게 축약한것이라 실제 구동에는 차이가 없는것 같습니다.)

위 코드에서 궁금한 부분이 2가지 생겼습니다.

  1. 위 부분에서 while true로 돌고 있는데 무엇때문에 한번만 출력되는지 궁금합니다.


  2. 위 코드를 작성하게 되면 다른 코드를 작성했을 때 콘솔창에 나타나는 "~~~~ 코드와 함게 종료되었습니다.... ~~~ 이 창을 닫으려면 아무 키나 누르세요.." 와 같은 프로그램의 끝을 알리는 자동 구문도 안뜨더군요.

위 두 가지가 궁금합니다.

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

  1. 한번만 출력되는게 아니라, 매 번마다 같은 위치가 다시 그리고 있어서
    변화가 없는 것처럼 보이는 것입니다.

  2. while (true)로 인해서 프로그램이 절대 끝나지 않아 종료되었습니다 문구가 뜨지 않는 것입니다.

정문경님의 프로필 이미지
정문경
질문자

아 지속적으로 루프가 계속 돌고 있는거군요 감사합니다

정문경님의 프로필 이미지
정문경

작성한 질문수

질문하기