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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小菜凉碟 中级黑马   /  2013-4-7 17:27  /  1620 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小菜凉碟 于 2013-4-7 22:06 编辑



如上图A、B,为什么将x 的初始化表达式放在for语句内部会会报错,不懂,求解!!

格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;(循环体)
}
注:
   a,for里面的每个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
   b,whilefor可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
   c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。


评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

7 个回复

倒序浏览
int x = 2,System.out.println("2");  这句话你放在main函数下也编译不过去;
int x = 2, 这一个部分是能被编译过去的,但是System.out.println("2"); 这个就编译不过去了了,因为类型不同;
java语法中规定每行语句用分号作为这行语句的结束标志;
当你定义int  x =2 ,y = 3; 这句话能够编译过去的;
定义成  int x = 2 ,y; 这句话也能编译过去,
但是你把“y= 3”或者“y” 这几句话换成" System.out.println("2")"
也就是说 " System.out.println("2")" 这个东西要么是一个赋值语句 ,要么是一个类型的变量名。
可惜的是" System.out.println("2")" 这句话什么都不是,编译器不会把他当成执行语句进行的执行的,因为 前面有个int ;
你把 int x 定义到for()语句上面就可以运行for语句的的内容了??
吃饭去了....

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
受教了,本人也刚学java不久,之前从没想过for循环可以按你这样的方式写,看来我是孤陋寡闻了
回复 使用道具 举报
不知道,等高手解答,给你提个建议,以后能否把代码贴出来,发帖子,那个里面有个<>按钮,是让你贴代码的,不要截图,你现在代码少,截图还可以,以后代码多了,你截图,别人也不好帮你测试啊!
回复 使用道具 举报
似水像火 发表于 2013-4-7 18:03
int x = 2,System.out.println("2");  这句话你放在main函数下也编译不过去;
int x = 2, 这一个部分是能被 ...

for循环第一句应该是一个赋值语句, 只执行一次。
回复 使用道具 举报
王溢君 发表于 2013-4-7 18:13
for循环第一句应该是一个赋值语句, 只执行一次。

int 类型开头要么是定义一个变量名,要么定义一个变量名并初始化。
其他基本类型也一样。
System.out.println(); 这个东西定义在int后,既不是赋值也不是命名变量名。
因为命名不合法。。。。。
回复 使用道具 举报
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;(循环体)
} 你把int  i=1,System.out.println(“a”);合成一个表达式..我很纳闷...这到底可行吗?
回复 使用道具 举报
应该是格式问题吧,两句话单独放在for语句第一个;之前,都是可以的,但毕竟是两条语句~ 没法简单地同时放在那儿的。

一楼说的比较详细咯~  

若没问题的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马