for嵌套if的执行顺序,高分求助!

#include <stdio.h>
main ()
{ int i;
for (i=1;i<=5;i++)
{ if (i%2) printf("*");
else continue;
printf ("#");
}
printf ("$\n");
}

结果:*#*#*#$。尽量详细点!
鄙视复制粘贴!

这个程序的关键就是其中的for 循环:

for (i=1;i<=5;i++)/*i的取值是1,2,3,4,5*/
{ if (i%2) printf("*");/*如果i%2不为0(即i是奇数)则输出'*'*/
else continue;/*如果i是偶数,则跳过下面的printf调用,直接判断是否进行下一次循环*/
printf ("#");/*如果i是奇数,则不执行上面的continue;所以会执行这一行输出一个'#'字符*/
}

有了对上述语句的理解后,就可以知道,此循环会在i=1,3,5时输出"*#",所以共会输出三个"*#",就形成了"*#*#*#",循环完成后,会执行后面的printf调用,输出一个'$'字符并换行,所以全部的输出就是: *#*#*#$
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-04
i=1 1%2=1 真 输出 * 跳过 continue 语句 继续输出 #
i=2 1%2=0 假 执行 continue语句 跳出当前循环 回到循环首
后面的相同

这里的*#是一次循环输出的
第2个回答  2010-07-04
for (i=1;i<=5;i++)
{
if (i%2) //i对2取余,结果能整除就到else ,否则输出*
printf("*");
else
continue; //结束本次循环,继续下次循环也就是再走到for那里
printf ("#");//输出 #,只有i不能整除2才能走到这。
}

所以
i=1,输出 *#
i=2,无输出
i=3, *#
i=4,无输出
i=5,输出 *#

结果就是 *#*#*#$
相似回答