在C中重写循环的IF语句
我的for循环有问题。基本上,我得到了我想要的输出,但原因是错误的。这个程序打印出来在C中重写循环的IF语句,c,if-statement,for-loop,iteration,C,If Statement,For Loop,Iteration,我的for循环有问题。基本上,我得到了我想要的输出,但原因是错误的。这个程序打印出来 xoxoxoxo oxoxoxox xoxoxoxo oxoxoxox xoxoxoxo oxoxoxox xoxoxoxo oxoxoxox 问题在于生产的顺序。我需要让内部循环对每个外部循环迭代8次(也迭代8次),但这并没有发生 编译器会在打印后继续返回if语句,而不是返回检查内部for循环(j) #包括 int main(){ int i; int j=0; 对于(i=
xoxoxoxo
oxoxoxox
xoxoxoxo
oxoxoxox
xoxoxoxo
oxoxoxox
xoxoxoxo
oxoxoxox
问题在于生产的顺序。我需要让内部循环对每个外部循环迭代8次(也迭代8次),但这并没有发生
编译器会在打印后继续返回if语句,而不是返回检查内部for循环(j)
#包括
int main(){
int i;
int j=0;
对于(i=1;i<9;i++){
对于(j=1;j
我假设您误解了调试器的行为,并且代码实际执行了它应该执行的操作。我无法解释为什么调试器不会跳转到for循环的头部,而是立即跳转到if。但是他们对这些事物都有不同之处:为什么所有的空行?<代码> J <代码>code>j<5会做完全相同的事情:让内部循环迭代8次。测试i
和j
以确定是需要'o'
还是'x'
。您可以看到编译器的想法:)或者,当你说“它一直返回到if语句”时,你是指IDE的调试器吗?C中关于循环的标准习语是for(int index=0;index
(其中limit=8
用于你的代码)。您可以在内部循环中使用for(int j=0;j<8;j+=2)
来强调对称性。您还可以将两个printf()
操作组合成一个(printf(“xo”)
而不是使用两个,或者使用putchar()
两次)。
#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;
}