inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

C++ Let's Make Games

빙고게임 2

iStar 초기화

311

코린이

작성한 질문수 3

0

  int iStar1 = 0, iStar2 = 0;

        for (int i = 0; i < 5; ++i)

        {

            iStar1 = iStar2 = 0;

            for (int j = 0; j < 5; ++j)

            {

                if (iNumber[i * 5 + j] == INT_MAX)

                    ++iStar1;

            }

            if (iStar1 == 5)

               ++iBingo;

}

 맨 위에 iBingo를 0으로 초기화 하는 이유는 직접 실행해보고 알았습니다.

그런데 iStar1, 2를 0으로 초기화 안하면 어떻게 되는지 궁금해서 저 라인을 지우고 실행해 봤더니 첫줄 *이 5개가 채워지기 전까지

**iii

iiiii

iiiii

iiiii

 이런 상황에선 빙고라인이 0이었다가 5개가 채워지는 순간

*****

iiiii

iiiii

iiiii

iiiii

빙고라인이 5가 되고 그 이후 *이 추가되는 순간

*****

*iiii

iiiii

iiiii

iiiii

빙고라인이 1이 되서 아무리 *을 늘려도

*****

*****

*****

****i

iiiii

빙고라인이 1에서 변하지 않던데요. 

이부분이 논리적으로 왜그렇게 되는건지 이해가 가질 않아서요...iStar를 매번 초기화 하는것과 않는것에 프로그램상 어떤 차이가 생기는 건가요?

저 코드의 순서가 for i 문에 들어가서 i는 0일때 j 는 0~4까지 실행하고 ++bingo까지 실행한뒤 다시 i=1일때로 반복하는 구조라서 그런건지. 그렇다고 해도 빙고가 5가 되었다가 다시 1로 바뀌는 이유를 도저히 모르겠습니다.

C++

답변 1

0

김동헌

1번째 줄의 iStar1, iStar2 = 0 한 이유는 당연히 사용자가 입력할 때마다 초기화 해줘야 해서 한거구요.

4번째줄에서 0으로 초기화 시킨 이유는요,

첫번째 for구문이 가로줄이 전체가 *일때를 구분하기 위해서 5번돌리는건데 첫번째줄이 *로 가득차서 iStar 이 5가되면 ++iBingo를 수행하게 됩니다. 그런데 0으로 초기화를 안해주고 첫번째 for구문이 다시 실행되면서 두번째 가로줄 체크할때도 iStar는 5인상태에서 실행되구요, 세번째가로줄 체크할때도 iStar은 5입니다. 그래서 5번째줄까지 체크해도 iStar은 5이기때문에 if문에 의하여 계속 ++iBingo가 된거에요. 즉 Bingo line이 다섯번 추가되었기 때문에 5라고 출력되는거겠죠.

변수가 메모리에 저장되는 것을 알려주는 강의가 어떤강의였죠

1

466

1

1-E질문입니다!

0

515

2

3-L 틀린 부분 피드백 부탁드립니다.

0

815

2

1-A문제 순열재귀함수 질문입니다.

0

380

1

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

544

1

1-A 일곱난쟁이문제입니다

0

454

1

문제 풀 때 방향성에 대해

0

797

1

맥에서 vs code로 실행 관련 질문입니다

0

520

1

쉽게 배울 수 있네요!

1

278

0

왜 소리가 안나올까요?

0

301

0

질문있습니다

0

283

0

숫자야구게임 잡음

0

410

0

선생님 AI는

0

258

0

iTemCount 변수가 언제 0으로 초기화되었나요?

0

223

0

같은 숫자반복

0

322

0

else if

0

429

2

조건붙일때

0

324

1

char* is incompatible with parameter of type char*

0

1119

2

쉬프트 연산자 이해가 잘 안됩니다.

2

245

0

동영상 재생이 안되요

0

310

0

실행

1

272

0

소리가 안나와요 ㅜㅜ

0

353

0

파일 문제

0

237

0

강의가 총 몇강인가요

0

290

0