新手问题 JAVA for语句

可能有点幼稚,不过实在是不明白……敢问下面这个语句的具体执行过程是什么样子的?

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(不满足则循环结束)——》。。。。
修改代码后程序运行如图图片说明

希望能帮到你,有什么问题可以继续问我。

不要这么写,j+=j++我不知道在java规范里面有没有,但是在C语言中,属于未定义行为。
换言之,j = j + j++,j=j+j后然后j++还是j先++后覆盖回j,这是编译器自己实现,并且不保证所有编译器的行为是确定的。

1,3,7,15,31,63,127,255,511,1023

这是个数列,a(n) = 2a(n-1) + 1;