问答详情
源自:4-9 循环结构之for循环(二)

第5行,表达式2是什么意思?

#include <stdio.h>
int main()
{
    int sum ,num;
    for(sum=0,num=0;num<=3&&sum<=5&&1;num++,sum++)
    {
        sum += num;
        printf("num=%d,sum=%d\n",num,sum);
    }
    return 0;    
}

为什么循环到num=2,sum=5,就不往下面循环了?条件都满足啊

提问者:宝慕林7152068 2018-08-09 20:03

个回答

  • 福瑞斯戴尔
    2018-08-09 23:27:02
    已采纳

     for(sum=0,num=0;num<=3&&sum<=5&&1;num++,sum++)
        {
            sum += num;
            printf("num=%d,sum=%d\n",num,sum);
        }


    (1).num=0  , sum=0  满足

    sum+=num=0  输出 sum=0  num=0

    下一步:sum++  -> sum=1 ,num++  -> num=1  , 

    (2.)num=1 , sum=1  满足 

    sum=sum+num=1+1=2    输出 sum=2  num=1

    下一步:sum++=2+1=3 , num++=1+1=2

    (2).num=2  , sum= 3 满足

    sum=sum+num=3+2=5  输出sum=5  num=2

    下一步  :sum++=5+1=6 (不满足!!!), num++=2+1=3   

    num=2  , sum=5  sum++  -> sum=6 ,num++  -> num=1  , sum=sum+num=1+1=2

  • c程序andJAVA
    2018-08-09 23:18:57

    sum执行完sum++后   sum就成了6了   不符合了sum<=5   循环终止