while(--k)s+=k 这个语句怎么理解啊

1个回答

  • 翻译成最一般的语法就是

    while(k=k-1) //k每次先减1,减1后,如果k不为0,则执行{ }里的语句

    {

    s = s+k;

    }

    最开始k=4,s=0

    第一轮:

    --k → k=3 不为0 ,即条件为真,

    所以执行循环体里的语句s+=k,即s = s+k; 即s = 0+3 ,所以 s = 3;

    第二轮:

    --k → k=2 不为0 ,即条件为真,

    所以执行循环体里的语句s+=k,即s = s+k; 即s = 3+2 ,所以 s = 5;

    第三轮:

    --k → k=1 不为0 ,即条件为真,

    所以执行循环体里的语句s+=k,即s = s+k; 即s = 5+1 ,所以 s = 6;

    第四轮:

    --k → k=0 为0 ,即条件为假,

    不再进入循环体,跳出while循环,此循环到此结束.

    此循环结束后各个变量的值为

    k=0,s=6;