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

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是在进入下一次循环的时候++的