c语言中,while循环和if循环有什么不同

#include <stdio.h>
main()
{
int i=1, m=1;
for(i=1;i<=9;i++)
{
for(m=1;m<=i;m++)
{
printf("%dx%d=%d ", i, m, i*m );
if(i==m)
{
printf("\n");
}
}
}

return 0 ;
}
这个代码可以正常运行但下面的就不行了
#include <stdio.h>
main()
{
int i=1, m=1;
for(i=1;i<=9;i++)
{
for(m=1;m<=i;m++)
{
printf("%dx%d=%d ", i, m, i*m );
while(i==m)
{
printf("\n");
}
}
}

return 0 ;
}

if是判断,while是循环。第一个的if,只执行一次后继续外面for循环。第二个while是根据判断条件决定是否循环,一旦进入了while循环后由于i和m的值不能改变,所以判断结果一直为真,在循环里出不来,即死循环。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-01
上面的if执行一次。
下面的while执行无限次!
相似回答