c - IF语句覆盖C中的FOR循环

标签 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;
}

最佳答案

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

关于c - IF语句覆盖C中的FOR循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061586/

相关文章:

python - 如何在使用append()时避免for循环

c - 如何访问指向结构指针的指针的成员?

c - wait() 等待子进程崩溃

c - 使用 strcat() 作为函数的参数

c - while(*s++=*t++) 相当于哪个表达式?

ios - else if 条件不执行语句

excel - 如果一列的条件为空,如何返回值

java - 方法返回负值

python - 邮件会发送 3 次,而不是每个地址一次?

c++ - 我的函数没有进入for循环,不知道为什么