无法中断C中的for循环

无法中断C中的for循环,c,C,我花了一些时间在这上面,但我不明白为什么它没有退出for循环 for (int i = 1; i < rows - 1; i++) { printf("before copy\n"); copyArray(rows, columns, table, temp); printf("after copy\n"); for (int j = 0; j < columns; j++) { printf("in

我花了一些时间在这上面,但我不明白为什么它没有退出for循环

for (int i = 1; i < rows - 1; i++) {
     printf("before copy\n");

     copyArray(rows, columns, table, temp);
     printf("after copy\n");

           for (int j = 0; j < columns; j++) {
              printf("inside j\n");
              if (table[i][j] == xOrO && table[i + 1][j] == xOrO && table[i - 1][j] == '.') {
                  temp[i - 1][j] = xOrO;
                  if (guessTwoMoves(rows, columns, temp, xOrO, playerPiece)) {
                      copyArray(rows, columns, temp, table);
                      return ('A' + j);
                  }
              }
           }

     printf("before break\n");
     printf("%i \n", i);
           if (i == 4) break;

     printf("inside i\n");
}

     printf("outside 3rd");
for(int i=1;i
这就是我得到的结果:
I=4
,但由于某种原因它没有退出循环。请检查图像以查看输出。我还没有在终端中调试,所以我使用了打印语句。请检查下面的图片


从我所看到的是,您共享的图像上缺少“Inside I”,因此循环实际上被终止


至于循环之外的
printf
,请参阅您帖子的评论。

您认为它为什么没有退出循环?我在您的输出中看到的最后一件事是
4
,它应该是
break
语句前面的
printf
。外部循环之外的
printf
语句(带有
“outside 3rd”
)中没有换行符,因此它可能仍在IO缓冲区中。在那里添加新行或刷新输出缓冲区以查看它。如果这不是问题,我们可能需要更多的背景。卡尔·诺伦,谢谢你指出。添加新行后,它似乎确实退出了循环。我会试着看看伊托克有什么问题;我会看看是否能找到一个问题来重复这个问题。再次感谢,我解决了这个问题。我觉得问题就在这个循环中,所以我被卡住了。我不知道我必须添加一个新行以从bufferOops中删除,抱歉,我错过了这一行,并认为这超出了文本片段的范围。我的错。。。帖子现在被更正了。