c语言达人进~~
来源:百度知道 编辑:UC知道 时间:2024/06/16 15:06:11
以下程序输出结果是_________
main()
{int i;
for(i=1;i<5;i++)
{if(i%2){printf("#");continue;}
printf("*");
break;
}
printf("\n");
}
我算的答案是*
正确答案是#*
难道第一次i++的值不是2?
带入if(i%2)的i不等于2
main()
{int i;
for(i=1;i<5;i++)
{if(i%2){printf("#");continue;}
printf("*");
break;
}
printf("\n");
}
我算的答案是*
正确答案是#*
难道第一次i++的值不是2?
带入if(i%2)的i不等于2
for语句先执行i=1;在执行i<5;然后执行if(i%2){printf("#");continue;}
printf("*");
break;
执行完以后再执行i++
i++是在循环体执行一次后再执行的,不是先执行i++再进入循环体
主要问题出在 break;他执行一次就跳出了循环
如果去掉break;就会是这样结果#*#*
如果把continue;也去掉结果是#**#**
当然是*啦,i=1的时候,if语句不会执行,所以也不会执行CONTINUE语句。把break去掉吧
第一次循环i=1啊
i是在进入下一次循环的时候++的