社区
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?
...全文
1274
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写文章
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=.
student-ai
2015-05-26
打赏
举报
回复
写完过几天,你自己都不认识了。。。。。。
飏飏一蝶
2015-05-25
打赏
举报
回复
http://blog.sina.com.cn/s/blog_605f5b4f0100khy0.html
这类问题点讨论意义都没有
(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
for (int i = 0, size = c.size(); i < size; i
++
)
近几天,看老大的框架,里面出现这样的语句for (int i = 0, size = c.size(); i package com.wang.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import j
特殊for循环嵌套执行的次数
for(i=1;i<=n;i*=2) for(j=1;j<=i;j
++
) laugh
++
; 请解释一下这里laugh
++
执行了多少次? 设循环k次,则有 (<=n 且是2的倍数) 内层for循环上限i的取值为1 2 4 8 ....,是一个等比数列; 所以,总循环次数为 Sn = 2*(1-)/(1 - 2) + 1 =- 1, 代入k值有:(<=n 且是2的倍数) ...
Java第一次学习
#乘法口诀(java嵌套) public class cf{ public static void main(String args[]){ int i,j,num=0; for(i=1;i<=9;i
++
){ for(j=1;j<=9;j
++
){ num=i*j;\\计算乘积 System.out.print(i+"*"+j+"="+num+"/t");\\输出 } System.out.println();\\换行 } } } 运用for的
python编写程序,打印九九乘法表
python编写程序,打印九九乘法表,两种方式差不多一样! #九九乘法表.循环嵌套 i = 0 while i < 9 : i +=1 j = 0 while j < i : j += 1 print(f'{j}*{i}={i*j} ',end="") print() #九九乘法表 for i in range(1,
10
): for j in range(1,i+1): print('{1}*{0}={
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章