第一个问题:
首先要理解嵌套循环的运行机制,外层循环执行一次,内层循环要执行一圈,以你的代码为例:
for(i=0;i<4;i++)
{
for(j=0;j<=i;j++)
m++;
}
开始时,i的值为0,j的值为0,j<=i为真,执行m++;m的值变成1,j变成1,判断i<=j,为假,内层循环结束;
然后,i的值为1,j的值为0,j<=i为真,执行m++;m的值变成2,j变成1,判断i<=j,为真,执行m++;m的值变成3,j变成2,判断i<=j,为假,内层循环结束;
......
最后一次循环,i的值为3,j从0到3,执行4次,也就是m自加4次
整个循环的执行过程:m的值自加1+2+3+4次,共10次,所以m的值为0+10=10,输出10
总结一下:主要是搞清楚内层循环执行的次数,当外层i为0时,内层执行1次,当外层i为1时,内层执行2次,当外层i为2时,内层执行3次,当外层i为3时,当外层i为4时,外层循环结束,内层循环也结束。内层执行4次,一共执行10次。
第二个问题,原理一样,但是因为j++改成了j=j+2,所以内层循环执行的次数减少了,代码m++;执行的次数减少,m自加的机会减少,所以最后m的值也变少,请根据我和第一个问题的回答,自己动手演算最后m的值,我就不再展开讨论了。