2013-06-23 2 views
-1

저는 C++에 매우 익숙하며 한 줄의 입력을 가져 와서 화면에 인쇄하는 것 이상의 프로그래밍에 익숙합니다. (Alex Allain의 C++로 점프하고 있습니다.) 각 사각형 번호가 매겨진 (TicTacToe 보드) 간단한 3x3 격자를 인쇄하려고합니다.하지만 무한 루프에서 1을 고수했습니다. 나는이 문제를 믿는 사람 모두에게 매우 간단하고 확실하다고 확신하지만, 나는 그것을 볼 수 없다. 여기 번호가 매겨진 격자를 표시하려고 시도했습니다. 무한 루프에 걸렸습니다.

내 코드, 그리고 당신의 도움을 주셔서 감사 사전에 :

int main() 
    { 
     for (int i = 1; i < 10; i++) 
     { 
      cout << "_____________\n"; 
      while (i <= 3) 
      { 
       cout << "| " << i <<" |"; 
      } 
      cout << "\n"; 
      cout << "|---|---|---|\n"; 
      while (i > 3 && i <= 6) 
      { 
       cout << "| " << i <<".|"; 
      } 
      cout << "/n"; 
      cout << "|---|---|---|\n"; 
      while (i > 6 && i <= 9) 
      { 
       cout << "| " << i <<".|"; 
      } 
      cout << "|___|___|___|\n"; 
      cout << "\n"; 
     } 
    } 

답변

3

먼저 당신은 내부 루프가 처음 i1 될 것이라고 도달 할 때 내부 루프 그러나

while (i <= 3) 

다음
for (int i = 1; i < 10; i++) 

외부 루프를 가지고 있고, 그것은 변화 않을 것이다 내부 루프에서 i <= 3이라는 표현은 이고 항상이되므로 무한 루프가 발생합니다.

2

대신 사용하는 동안의 경우. 당신은 그 루프에서 어떤 것도 증가시키지 않습니다.

1

내부 용 루프를 사용해 보셨습니까?

for (int i = 0; i < 3; i++) { 
    for (int j = 0; j < 3; j++) { 
     // print your stuff here 
    } 
    // new line comes here 
} 
0

는 "동안"반복되는 구조가 아니라 단지 분기 명령이다. "while"문장을 "if"로 변경하면 괜찮을 것입니다.

관련 문제