执行过程中考虑一种情况:
m=10;t=9
则第一段代码中:
if(m-t>=0) m=m-t;
if (m-t<0) sum++;
这两句都会执行;
而第二段代码中则只执行if(m-t>=0) m=m-t;
因此,代码1比代码2执行sum++的次数多
因此,代码1打印的值会比代码2打印的值大
第一个代码:如果m-t<=0之后你做了m=m-t此时的m如果比t小,那么就会执行下一步sum++
比如说当前m=5,t=3 m>=t 执行m=m-t=2下一步m
if(m-t>=0) m=m-t;
if (m-t<0) sum++;
当满足m-t>=0,就改变了m的值了,然后又判断if (m-t<0) ,如果满足就sum++了
而
if(m>=t) m=m-t;
else sum++;
两者只会执行一步,不是m=m-t;就是sum++;
显然结果不同