社区
Java SE
帖子详情
for (i = 0, j = 0; i < 10; i++) j += j++; 为什么结果是j=0
IT衡
2015-05-25 11:27:16
for (i = 0, j = 0; i < 10; i++) j += j++;
j+=j++ ,先完成运算j=j+j=0, 然后自加j=1,代入再一轮循环,有什么不对么?为什么结果是0?
...全文
1254
15
打赏
收藏
for (i = 0, j = 0; i < 10; i++) j += j++; 为什么结果是j=0
for (i = 0, j = 0; i < 10; i++) j += j++; j+=j++ ,先完成运算j=j+j=0, 然后自加j=1,代入再一轮循环,有什么不对么?为什么结果是0?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whatnamecaniuse
2015-05-28
打赏
举报
回复
#include <stdio.h> int main(int argc, char* argv[]) { for(int i=0,j=0; i<10; i++) { j += j++; printf("%d\r\n", j); } return 0; } 1 3 7 15 31 63 127 255 511 1023 VC2012
u010185450
2015-05-28
打赏
举报
回复
编译器问题,centos5.6 x64 g++运行正常。
shengfenglai
2015-05-27
打赏
举报
回复
有问题就问,学习了
xia夜
2015-05-27
打赏
举报
回复
编译时j += j++就和j += j的效果一样,个人认为j += j++;会产生异意,如果j=2的话,在计算之前j是等于2的,这是先计算j += j然后再j才自加1,但是在计算j += j后j=4,那么这时那个j自加1的是,原来的j=2自加1还是之后的j=4自加1呢?因此产生异意。
潘少博
2015-05-27
打赏
举报
回复
挺好的问题。学习
jiahuixing7
2015-05-27
打赏
举报
回复
代码最好不要这样写,因为别人看不懂你自己也会看不懂。j++和++j得到的结果是不同的。j+=j++很容易会理解错误的,所以最好还是分开写吧~
iphilip
2015-05-27
打赏
举报
回复
没什么意义!!!!!!!!!!!!!!!!!!!!!
sirnuo
2015-05-27
打赏
举报
回复
j+=j++; j 本来加1了,然后又被赋值为0了。 你改成 j+=++j;试试。
BrightFireOfCy
2015-05-26
打赏
举报
回复
j++ 表达式的值是0。。。。。。
code小生
2015-05-26
打赏
举报
回复
每次执行完循环体之后j的值并不是0,但是在判断循环条件的时候,都将j的值初始化为0,所以最后输出来的结果是0.
风吹过夏天
2015-05-26
打赏
举报
回复
看到这样的代码,小心项目经理抽你。
zhrubin
2015-05-26
打赏
举报
回复
不要写自己看不懂的代码...
alan19931103
2015-05-26
打赏
举报
回复
不对,这个过程还可以再分,先计算,然后赋值。所以先计算j + j++,结果是0,计算完成以后j加1,此时j=1,然后复制,把j赋值为计算结果0。所以最后一直是0。
你要+1,直接++就可以了,不要j=.
JPF1024
2015-05-26
打赏
举报
回复
写完过几天,你自己都不认识了。。。。。。
飏飏一蝶
2015-05-25
打赏
举报
回复
http://blog.sina.com.cn/s/blog_605f5b4f0100khy0.html
这类问题点讨论意义都没有
试分析下面程序段的时间复杂度。3)s=0; for i=0; i<n; i
++
) for(j=0; j<n; j
++
) s+=B[i][j]; sum=s;答案:O(n^2
809数据结构和908数据结构与算法_练习 第1章 绪论。解释:语句s+=B[i][j];试分析下面程序段的时间复杂度。
for(i<=n)for(j<=i)for(k>=j)计算x
++
的语句频度
数据结构初学 语句频度 需要用到平方和公式来求解的语句频度计算
(int a[][]) //输出数组方法 { for(int i=0;i
++) { for(int j=0;j
++)
public class xiti5_6 { public static void Printf(int a[][]) //输出数组方法 { for(int i=0;i
++) { for(int j=0;j
++) { System.out.print(a[i][j]+" "); //if(j==a[0].l
java:j=j
++
和j=
++
j的理解,为何j=j
++
为0?
先来看一段程序: public class Test1 { public static void main(String[] args) { int j = 0; for(int i = 0; i <
10
0; i
++
){ j = j
++
; } System.out.println(j); ...
数据结构---三重循环的语句频度
题目 计算下列程序段种x = x + 1;的语句频度。 for( i = 1 ; i <= n ; i
++
) for( j = 1 ; j <= i ; j
++
) for( k = 1 ; k <= j ; k
++
) x = x + 1; (出自:《数据结构——用C语言描述》(第二版) 耿国华著) 首先我们看另一个题目:执行下面程序,求语句S的执行次数。 for( i = 1 ; i <= n ; i
++
) //设为语句1 for( j = 1 ;
Java SE
62,631
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章