count=count++的覆盖增量问题

count=count++的覆盖增量问题


今天在学习中,朋友问了我一个问题,就是有关下面代码输出结果的问题,话不多说,先上段代码:

@Test
    public void test03(){
        int count = 0;
        for(int i = 0; i < 2; i++){
            count = count++;
        }
        System.out.println(count);
    }

我当时也犹豫了很久,想着可能是2可能是0,我也不敢确定,最终输出结果是0.然后我们就一直找这个输出结果的原因,找了好久,然后我通过编辑工具找到了答案
上张图:
在这里插入图片描述
在这里我的IDEA安装了FindBugs插件,当我打出count=count++的时候,它马上给我报出了一个警告,通过这个警告,最终我找到了问题的答案。
以下是这两段解释的翻译:

问题分类: 正确性(死本地存储) DLS_OVERWRITTEN_INCREMENT(覆盖增量) FindPuzzlers (BSHIFT | Bx | DLS | DMI | USELESS_STRING |电子商务| ICAST | IC | IJU | IM | PZ | RV)

覆盖增量代码执行增量操作(例如i++),然后立即覆盖它。例如,i = i++立即用原始值覆盖递增的值。

在’count++'时更改的值从未减少使用…(Ctrl + F1) 检查信息:此检查指出变量值在赋值后从未使用的情况,即: -变量在赋值之后永远不会被读取,或者-值总是在下一个变量读取之前被另一个赋值覆盖,或者-变量初始化器是冗余的(原因有以上两个)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值