在路上丶 发表于 2019-9-20 10:42:14

c语言while循环的问题

int a=1,y=4;
    while(y--!=1)
    {
      a*=y;
      a++;
    }
    printf("%d,%d\n",a,y);
    return 0;
为什么打印的是10,0{:10_266:}

yuweb 发表于 2019-9-20 10:58:43

y--!=1 先判断当前y是否等于1,再执行y=y-1
--y!=1 先执行y=y-1,再判断当前y是否等于1

jackz007 发表于 2019-9-20 11:10:10

   y = 4 , 第 1 次循环:y = 3 ,a = 1, a = a * y = 3 ,a ++ , a = 4
   y = 3 , 第 2 次循环:y = 2 ,a = 4, a = a * y = 8 ,a ++ , a = 9
   y = 2 , 第 3 次循环:y = 1 ,a = 9, a = a * y = 9 ,a ++ , a = 10
   y = 1 ,      结束循环: y = 0 ,a = 10   

在路上丶 发表于 2019-9-20 14:33:22

谢谢
页: [1]
查看完整版本: c语言while循环的问题