IF语句覆盖C中的FOR循环

时间:2016-10-15 16:36:46

标签: c if-statement for-loop iteration

我遇到for循环问题。基本上,我得到了我想要的输出,但出于错误的原因。打印出该程序

xoxoxoxo  
oxoxoxox  
xoxoxoxo  
oxoxoxox  
xoxoxoxo   
oxoxoxox   
xoxoxoxo   
oxoxoxox

问题在于产生这种情况的顺序。我需要让内循环为每个外循环迭代8次(也迭代8次),这是不会发生的。

编译器在打印后继续返回if语句,而不是返回检查内部for循环(j)。

#include <stdio.h>

int main() {
int i;
int j = 0;

for (i = 1; i < 9; i++) {
    for (j = 1; j < i + 4 && j < 5; j++) {

        if (i % 2 == 0) {
            printf("o");
            printf("x");
        }
        else {
            printf("x");
            printf("o");
        }
    }
    printf("\n");
}
getchar();
return 0;
}

1 个答案:

答案 0 :(得分:1)

我假设您误解了调试器的行为,而代码实际上完全按照它应该执行的操作。为什么你的调试器不会跳转到for循环的头部,而是立即转到if,我不能说。但他们对这些事情都不同:)