黑马程序员技术交流社区

标题: for循环问题 [打印本页]

作者: linder_qzy    时间: 2015-3-6 22:55
标题: for循环问题
有一个关于for循环的问题
  1. for(System.out.println("a");y<3;System.out.println("b")){
  2.                         System.out.println("c");
  3.                         y++;
  4.                 }
复制代码


输出结果是 acbcb  这个是怎么回事
作者: 艺多不压身丶    时间: 2015-3-6 23:32
int y=0;
for(System.out.println("a");y<3;System.out.println("b")){
           System.out.println("c");
           y++;
}

2010082713423918.jpg (71.43 KB, 下载次数: 1)

2010082713423918.jpg

作者: linder_qzy    时间: 2015-3-7 00:09
艺多不压身丶 发表于 2015-3-6 23:32
int y=0;
for(System.out.println("a");y

表达式1只执行一次
作者: 硫氢化铁    时间: 2015-3-7 08:20
你肯定把int y = 0;定义在循环外了,要不然输出结果不可能是acbcb
作者: gaopeng868988    时间: 2015-3-7 09:33
循环的开始y值赋值的不对把
作者: lwenz    时间: 2015-3-7 09:40
这几条语句很好的表达出for循环的语句执行的顺序的情况。
作者: Neil_Qian    时间: 2015-3-7 09:45
应该是为了看执行的顺序,这样比较直观
作者: yangruijing    时间: 2015-3-7 09:57
循环结构(for)格式:
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)){       
        执行语句;(4)
}       
执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3)
备注:
1, for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,
然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
所以,System.out.println("a")语句只执行一次
作者: 路文龙    时间: 2015-3-7 10:24
for的执行顺序。


执行顺序.png (18.92 KB, 下载次数: 1)

执行顺序.png

作者: 长工射日    时间: 2015-3-7 10:41
for循环语句中括号内部的第一语句执行一次就完了,所以一个a;而再执行第二句错误便结束循环,但结果正确,执行大括号内语句,再是第三句,所以会出现两个循环的cb。而有的初始化应该是0,所以只循环y=1,和y=2。不过这个程序太反映for语句循环特性,值得复制保存
作者: coolzhou9527    时间: 2015-3-7 10:54
楼主,y的赋值是不是
        int y=1  啊?
作者: 弹剑高歌踏浪行    时间: 2015-3-7 10:55
楼主定义的Y应该等于1吧? 这样才是这个结果。这个题目java基础里面有的 建议楼主再看看  在for语句哪里
作者: linder_qzy    时间: 2015-3-7 13:06
coolzhou9527 发表于 2015-3-7 10:54
楼主,y的赋值是不是
        int y=1  啊?

int y = 0 忘记写了
作者: 执念    时间: 2015-3-7 23:32
linder_qzy 发表于 2015-3-7 13:06
int y = 0 忘记写了

我说这程序怎么弄的出这个结果的:L




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