无法中断C中的for循环
我花了一些时间在这上面,但我不明白为什么它没有退出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 (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中删除,抱歉,我错过了这一行,并认为这超出了文本片段的范围。我的错。。。帖子现在被更正了。