黑马程序员技术交流社区

标题: 自增赋值问题!! [打印本页]

作者: strongmanzxh    时间: 2016-4-14 21:34
标题: 自增赋值问题!!
class Text3_For {
        public static void main(String[] args) {
                //统计所有水仙花数的个数
                int count =0;
                for (int i = 100;i <= 999 ;i++ ) {
                        int ge = i % 10;
                        int shi = i / 10 % 10;
                        int bai = i / 10 / 10 % 10;
                        if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                                System.out.println(i);
                                count=count++;                                //满足条件就自增,计数器思想
                        }
                }
                System.out.println("count = " + count);
        }
}
上面count 自增,可以将其自增值再赋于count吗?编译的时候没出错,但运行的结果count居然是0,这个有所能帮忙解答下,谢谢!!
作者: 豆豆斌    时间: 2016-4-14 22:39
把count = count++改为count++就行了
作者: 大山的伤    时间: 2016-4-14 23:03
  if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i)????????????????????????????????????你没觉得这里有问题吗?
作者: huhemingtiancai    时间: 2016-4-14 23:04
顶一个,不错,一起加油
作者: 心悟    时间: 2016-4-14 23:35


你程序有两个问题:
          1).   int不要在循环里面定义
          2).   count++ 就已经等价于 count = count + 1 了,      而你的count = count++  这个值是一直会是 0 的 , 这里是比较特殊的地方
               

作者: strongmanzxh    时间: 2016-4-15 10:23
心悟 发表于 2016-4-14 23:35
你程序有两个问题:
          1).   int不要在循环里面定义
          2).   count++ 就已经等价于 coun ...

谢谢你的解答,关于int 是否在循环里面,应该都可以,老师给我们演示的基本上都在循环体中直接定义;即然count++ = count + 1; 那count = count++ 按道理的话应该会报错的呀!
还有一个问题想请教你一下:
老师视频上讲,for 语句结束后定义的变量会被释放,按道理后面打印的count 数应该也会被释放掉呀?为什么结果却不是呢,有点不明白!!
作者: strongmanzxh    时间: 2016-4-15 10:26
豆豆斌 发表于 2016-4-14 22:39
把count = count++改为count++就行了

谢谢,知道了
作者: strongmanzxh    时间: 2016-4-15 10:28
大山的伤 发表于 2016-4-14 23:03
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i)????????????????????????????????????你没 ...

没有问题呀
作者: strongmanzxh    时间: 2016-4-15 10:29
huhemingtiancai 发表于 2016-4-14 23:04
顶一个,不错,一起加油

共勉 一起加油啦
作者: 心悟    时间: 2016-4-15 22:55
strongmanzxh 发表于 2016-4-15 10:23
谢谢你的解答,关于int 是否在循环里面,应该都可以,老师给我们演示的基本上都在循环体中直接定义;即然 ...

关于count = count++

http://itlab.idcquan.com/Java/base/21363.html 你可以网上搜下i = i++的说法

所以还是建议, i++这种自增尽量单独使用

for循环只有在循环体里面定义的,( 包括 for括号里面的)

循环结束才会被释放, 你count的是在循环外面的
作者: strongmanzxh    时间: 2016-4-15 23:19
心悟 发表于 2016-4-15 22:55
关于count = count++

http://itlab.idcquan.com/Java/base/21363.html 你可以网上搜下i = i++的说法

哦 明白了 谢谢!!
作者: Dencent    时间: 2016-4-16 17:24
看不懂,好厉害
作者: 心若不动    时间: 2016-4-16 20:25
看看楼上的那个代码就知道了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2