黑马程序员技术交流社区

标题: 这个for循环的结果是多少 [打印本页]

作者: 比烟花寂寞_neve    时间: 2013-9-17 14:36
标题: 这个for循环的结果是多少
本帖最后由 黄兴旺 于 2013-9-17 15:48 编辑

package Test;
/**
* for循环
* @author Administrator
*
*/
public class ForTest {

        
        
        public static void main(String[] args) {
                int i = 0;
                for (System.out.println("a");i<3;System.out.println("b"),i++) {
                        System.out.println("d");
                }
        }
}


作者: yangxin540    时间: 2013-9-17 14:41
a
d
b
d
b
d
b
作者: 比烟花寂寞_neve    时间: 2013-9-17 14:42
yangxin540 发表于 2013-9-17 14:41
a
d
b

我想要思路,结果的话myEclipse可以检测的,你可以帮我分析一下么?{:soso_e100:}

作者: 雪龙    时间: 2013-9-17 14:46
本帖最后由 雪龙 于 2013-9-17 14:51 编辑

a
d
b
d
b
d
b
这是打印结果。
  int i = 0;
                for (System.out.println("a")【1】;i<3【2】;System.out.println("b"),i++【3】) {
                        System.out.println("d"【4】);
}  在for循环中,其实是三个表达式,我给你说一下执行顺序  1-2-4-3-2-4-3-2-4-3
还有在你的是第三个语句中,用的是i++ 即使先使用后自增

作者: 比烟花寂寞_neve    时间: 2013-9-17 14:48
雪龙 发表于 2013-9-17 14:46
a
d
b

。。。。思路重于结果,求思路。

作者: 比烟花寂寞_neve    时间: 2013-9-17 15:02
雪龙 发表于 2013-9-17 14:46
a
d
b

应该第三步和第四步互换吧,谢谢你,解决了

作者: 杨修    时间: 2013-9-17 15:14
for (System.out.println("a");i<3;System.out.println("b"),i++) {
                        System.out.println("d");
                }
对于for循环,基本格式为:
       for(初始化表达式;循环条件表达式;循环后表达式)
       {
              循环体;
       }
执行顺序为:初始化表达式---->循环条件表达式---->循环体---->循环后表达式----->循环条件表达式---->循环体---->循环后表达式---->。。。。。
初始化表达式只执行一次,其他三个部分一直循环。
因此结果为:a  d  b d  b  d  b
作者: wumuzhong    时间: 2013-9-17 15:14
int i =0;
for(System.out.println("a");i<3;System.out.println("b"),i++) {
                        System.out.println("d");
                }
for循环3次,第一次输出为a,d,b,第一次执行for语句,第一个“;”前为初始化语句,在整个for语句中,值执行一次,即第一循环执行,下次不执行,然后去判断第二分号之前的语句,如果符合条件,为true的话,就执行大括号{}里的语句,执行完之后,再去执行第二分号后面的语句,所以,第一次循环为:a,d,b, 第二次为:d,b,第三次为:d,b.
作者: 比烟花寂寞_neve    时间: 2013-9-17 15:16
wumuzhong 发表于 2013-9-17 15:14
int i =0;
for(System.out.println("a");i

真详细,看明白了,怎么将问题变成已经解决。{:soso_e163:}

作者: 肖勇    时间: 2013-9-17 16:00

  1. <P>public class ForTest {

  2.         
  3.         
  4.         public static void main(String[] args) {
  5.                 int i = 0;
  6.                 for (System.out.println("a");i<3;System.out.println("b"),i++) {
  7.                         System.out.println("d");
  8.                 }
  9.         }
  10. }

  11. </P>
  12. <P>这种题目你可以转换一下看:可以把输出语句改成我们熟悉的语句:这样你就容易理解了。</P>
  13. <P>for(int i=0;i<3;i++)</P>
  14. <P>{</P>
  15. <P>   system.out.println("......");</P>
  16. <P>}</P>
复制代码
因为在for语句中,初始化表达式只执行一次,这是你要记住的,只有循环条件表达式和循环后的表达式才执行多次,所以在初始化的时候就会输出a,然后i满足条件,输入b,这时i 变为1,再打印d,注意:此时不执行 打印a 的输出语句,而是执行循环表达式,就这样反复执行;直到条件不满足。
所以执行结果为 : a b d b d b d





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