可能有点幼稚,不过实在是不明白……敢问下面这个语句的具体执行过程是什么样子的?
for (i = 0, j = 0; i < 10; i++) j += j++;
可能有点幼稚,不过实在是不明白……敢问下面这个语句的具体执行过程是什么样子的?
for (i = 0, j = 0; i < 10; i++) j += j++;
你好,你这段代码是没有太多实际意义的,个人认为你是写错了吧,从程序运行来看,结果全为0.如图;稍微改改就好了,j += j++;改成j += ++j;执行过程如下(以修改后的函数为例):
① i = 0, j = 0 ——》判断 i 是否<10 ——》是——》++j——》将++j的值1带入计算式j +=++j,此时j=1;
②i++ ——》判断 i 是否<10 ——》i=1,是——》++j——》将++j的值2带入计算式j +=++j,此时j=3;
③余下省略。。。
此题因注意
(1)a= j++ 和 b=++j 的区别,假设 j=1;那么程序运行后,两者都有 j=2,但前者 a=1,后者 b=2 。
见图
(2)for ( A ; B ; C ){ D }执行顺序为A——》判断是否满足B——》满足则执行D(不满足则循环结束)——》C——》判断是否满足B满足则执行D(不满足则循环结束)——》。。。。
修改代码后程序运行如图
希望能帮到你,有什么问题可以继续问我。