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

为什么这段程序里不能是++n

#include <stdio.h>
int main()
{
    // 定义变量sum, num
    int sum, num; 
    sum = 0;
    for(num = 0;num<=10;++num) //for循环条件与num的变化值
    {
     sum=sum+num; //计算每次数字之间的和sum
    }
    printf("10以内数的和为:%d", sum);
    return 0;
}


为什么不可以是++n?

提问者:哲哲余 2018-11-07 21:04

个回答

  • 慕先生0271548
    2019-03-05 23:55:25

    其实在这里++m和m++没什么区别,因为num是0,如果num是1就不行了


  • 慕斯6557155
    2018-12-11 16:30:03

    对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++n对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++num是一次循环完毕后,而num++是当即运行。um是一次循环完毕后,而num++是当即运行。

  • 俊哥仔
    2018-12-08 15:18:59

    此处 num++ 意思就是,先取num的值,即num=0,并不是取了num的值后就进入到表达式2的判断,而是进行num+1=1,得到num=1后随即进行表达式2的判断。

  • 慕少9421210
    2018-11-25 13:41:56

    不输出的话都一样 都是变成n=n+1

  • 慕运维5519014
    2018-11-11 19:22:09

    我跟你的疑问一样


  • 闰土无声
    2018-11-08 09:17:40

    ++n是先加再取值,这样会导致第一个数字为2而不是1

    n++是先取值再加,他会先去i=1,然后运行i+1并将值赋予i中得到2,以此类推