A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linder_qzy 中级黑马   /  2015-3-6 22:55  /  1168 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个关于for循环的问题
  1. for(System.out.println("a");y<3;System.out.println("b")){
  2.                         System.out.println("c");
  3.                         y++;
  4.                 }
复制代码


输出结果是 acbcb  这个是怎么回事

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 加油~

查看全部评分

14 个回复

倒序浏览
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
回复 使用道具 举报
艺多不压身丶 发表于 2015-3-6 23:32
int y=0;
for(System.out.println("a");y

表达式1只执行一次

点评

是的,初始化值变量在循环外  发表于 2015-3-7 00:15
回复 使用道具 举报
你肯定把int y = 0;定义在循环外了,要不然输出结果不可能是acbcb
回复 使用道具 举报
循环的开始y值赋值的不对把
回复 使用道具 举报
这几条语句很好的表达出for循环的语句执行的顺序的情况。
回复 使用道具 举报
应该是为了看执行的顺序,这样比较直观
回复 使用道具 举报
循环结构(for)格式:
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)){       
        执行语句;(4)
}       
执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3)
备注:
1, for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,
然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
所以,System.out.println("a")语句只执行一次

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
for的执行顺序。


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

执行顺序.png

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

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

int y = 0 忘记写了
回复 使用道具 举报

我说这程序怎么弄的出这个结果的:L
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马