黑马程序员技术交流社区

标题: 为什么输出结果是2,4,6,8,10 [打印本页]

作者: 黄敬璇    时间: 2015-5-2 10:22
标题: 为什么输出结果是2,4,6,8,10
class ForDemo
{
        public static void main(String[] args)
        {
                int x=0;

                for(x++ ; x++<10 ;++x)
                {
                        System.out.print(x);
                }
        }
}


作者: Dylon    时间: 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++<10; x++参与到运算中,此时先将x的值赋给运算表达式,然后再执行x自加,所以此时  1<10,成立,然后x的值变为2;
3.执行输出语句 输出结果为 2
4.执行循环控制语句++x;独立出现,此刻x=3;
5.继续执行判断语句,同样先将x的值赋值给表达式,即3<10;成立,然后x自加,值为4.
6.输出结果 4
以后依次循环步骤4~6,就可以得出结论
作者: 下一页5    时间: 2015-5-2 10:40
这个题目好难
作者: 下一页5    时间: 2015-5-2 10:51
Dylon 发表于 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++ ...

好像有点懂了
作者: 牛仔很忙fire    时间: 2015-5-2 11:04
这个其实不难
作者: 1017161726    时间: 2015-5-2 11:25
这个题有意思。就是for循环中的x++这部分,它只在第一个循环中执行一次,后续循环中没有它了。
作者: zhang214214    时间: 2015-5-2 11:38
这题目不错哈!很好玩
作者: 蓝七    时间: 2015-5-2 11:38
x++<10,改成x<10,是不是就明白了
作者: yuanhnu    时间: 2015-5-2 12:02
执行顺序:x++  --->  x++<10 ----> 方法体----> ++x  ----> x++<10 ----> 方法体 ----> ++x  ---> x++<10 ----->方法体..........后面循环至不满足x++ <10
不懂的话你先看看上课关于for循环顺序的笔记
作者: 希-望    时间: 2015-5-2 13:07
这道题要弄明白x++和++x的区别,还要明白for循环的执行顺序。
作者: 殃金咒    时间: 2015-5-2 15:18
x++和++x我一直也不明白啥区别= =
作者: 晓声    时间: 2015-5-2 16:29
Dylon 发表于 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++ ...

正解~+1.。。。应该就是毕姥爷的视频讲的For循环条件执行的顺序
作者: exist    时间: 2015-5-2 16:40
x=12 循环 5次
作者: 蓝墨清幽    时间: 2015-5-2 16:56
这个题不错,收藏
作者: 大爱卓生    时间: 2015-5-2 17:24
先加后加和for循环执行顺序的问题。
作者: 爆炸头    时间: 2015-5-2 17:31
Dylon 发表于 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++ ...

好详细~~~~~~~~~~~
作者: wangyu    时间: 2015-5-2 18:56
初始条件的x++可以看成x=x+1,他就执行一次。然后循环条件就是x++,需要注意的只有判断条件,比的时候用的是x,比完之后x自增一
作者: zuoyou    时间: 2015-5-2 19:06
其实只要搞清楚各个运算符号的优先级,就什么都明白了!
作者: rightyuan521    时间: 2015-5-2 19:46
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1; 2.然后执行判断语句x++<10; x++参与到运算中,此时先将x的值赋给运算表达式,然后再执行x自加,所以此时  1<10,成立,然后x的值变为2; 3.执行输出语句 输出结果为 2 4.执行循环控制语句++x;独立出现,此刻x=3; 5.继续执行判断语句,同样先将x的值赋值给表达式,即3<10;成立,然后x自加,值为4. 6.输出结果 4 以后依次循环步骤4~6,就可以得出结论
作者: fanxia_2007    时间: 2015-5-2 19:56
只要搞清楚执行顺序,这道题不难。
作者: LLLX77    时间: 2015-5-2 19:59
这题不难,还有更难更变态的呢
作者: as12510    时间: 2015-5-2 20:11
好深奥的问题  但是 你为什么要这样写呢
作者: IDhmpj    时间: 2015-5-2 21:54
只需要搞清楚:x++先取值,再运算,++x先运算,再取值.
作者: Sheng.cn    时间: 2015-5-2 22:09
能懂a++和++a 的区别就没问题
作者: hui1130    时间: 2015-5-2 22:27
了解for循环,结构内语句的执行顺序就好了
作者: fhy1969038887    时间: 2015-5-3 03:27
{:3_46:}不太懂啊,求大神解答
作者: 苟苟    时间: 2015-5-3 07:49
题不错,,,x++运算后执行,,,++x运算执行
作者: 黑夜的触手    时间: 2015-5-3 09:23
只要明白for循环的执行顺序,so easy
作者: 鱼饵    时间: 2015-5-3 09:31
瞬间对x++和++x有了新的理解。
作者: Cat    时间: 2015-5-3 10:24
学习一下~
作者: 邓熊财    时间: 2015-5-3 10:36
必须是2,4,6,8,10;知道执行顺序你就知道结果是什么原因了
作者: 石义良    时间: 2015-5-3 10:39
学习了...
作者: brouse    时间: 2015-5-3 10:57
反正++之后才打印,不用管先比后比的问题吧
作者: heima0503    时间: 2015-5-3 11:01
            for(①; ② ;③)
                {
                       ④
                }
执行顺序是   ① ②  ④ ③ ②  ④ ③ ②  ④ ③ ②  ④ ③....
作者: 巴拉森    时间: 2015-5-3 11:14
这个题目好难
作者: adminlxb    时间: 2015-5-3 19:00
Dylon 发表于 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++ ...

答案很到位,赞一个!一个理解x++,++x,还有for语句的典型小例子,不错不错!
作者: lubowen1990    时间: 2015-5-3 20:24
看了底下大家的回复才明白一点了
作者: 陈锐涛    时间: 2015-5-3 20:30
哈哈哈 还真的没有人会想出这种求偶数的方法,一般都是%2能否等于0看结果~~厉害 学到东西了
作者: 吾爱SF    时间: 2015-5-3 20:33
第一次是:x++ ; x++<10 之后都是x++<10 ;++x,所以都是加两次
作者: csu050416    时间: 2015-5-4 10:13
这题经典啊,涉及了for循环和自增赋值的知识。有收获,知识得到加深了。谢谢。
作者: 唐泉银    时间: 2015-5-4 17:06
因为每次判断条件时和,跳转到变量时都会自增,每次循环都自增两次
作者: 木头人之死    时间: 2015-5-4 17:13
因为X++了两次
作者: an_lucas    时间: 2015-5-4 17:50
Dylon 发表于 2015-5-2 10:40
1.for语句中执行顺序,先执行x++,由于是独立出现的所以此时x=1;
2.然后执行判断语句x++ ...

学习了~~~
作者: zhiweiqi    时间: 2015-5-4 19:09
在第二个x++时x的值已经是1了,然后最后++x是先增后算,所以最后x=2,以此类推循环,结果就是2,4,6,8,10
作者: 18612539120    时间: 2015-5-4 19:26
来 看看  学习一下  
作者: wu1123    时间: 2015-5-4 19:52
折腾下x++ 和 ++x,弄明白怎么回事就会很简单啦
作者: niuchuanhe    时间: 2015-5-4 21:39
++两次以0开始的话输出的是偶数,以1开始的话输出的是基数!其实很容易理解的!
作者: 雪风飞花    时间: 2015-5-4 22:35
看着挺好玩的,细想一下执行顺序就明白了




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