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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鸣人H 中级黑马   /  2015-5-26 00:28  /  765 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

for(;;);{}
这个语句为什么会出现错误???
for(;;);这个语句是对的。
{}这个语句也是对的,为什么连起来就是错的???

评分

参与人数 3黑马币 +30 收起 理由
小峰Raul + 6 赞一个!
张清华 + 12 很给力!
陈明佳 + 12 赞一个!

查看全部评分

18 个回复

倒序浏览
额,是不是错了哦,for( ; ;){}   小括号后没有分号
回复 使用道具 举报
你也说了 for(;;);是一个语句 {}是一个语句,两条语句怎么能直接拼成一条呢?  而且{}这个不叫语句,叫做代码块,是先于构造函数而执行的代码块,用于给变量赋值的   如果这两条语句要拼成一条的话 应该是for(;;){}   这是一个无限死循环 判断条件永远为真,你可以在{}输入语句,结果会无限执行 比如写一条输出语句
回复 使用道具 举报
回答的挺详细,,我试下。。。谢谢了。。。。
回复 使用道具 举报
君子无醉 发表于 2015-5-26 05:43
你也说了 for(;;);是一个语句 {}是一个语句,两条语句怎么能直接拼成一条呢?  而且{}这个不叫语句,叫做代码 ...

回答的挺详细,我试下。谢谢了。。
回复 使用道具 举报
java中“;”就代表着语句的结束。其他的2楼解释的很清楚,for(;;){}是个死循环,使用循环语句记得加上控制语句。
回复 使用道具 举报
不能加封号,for(;;){}
回复 使用道具 举报
郭.威 发表于 2015-5-26 22:01
不能加封号,for(;;){}

不加分号是死循环!!
回复 使用道具 举报
hui1107464497 发表于 2015-5-26 00:47
额,是不是错了哦,for( ; ;){}   小括号后没有分号

是错的,,但是
就如我的问题里的for(;;);这个语句是对的,而在类中单独写;也是对的。。单独写{}也是对的,为什么加起来就不对了呢?这就是我的疑惑所在。
回复 使用道具 举报
你for(;;);这个语句本身没问题   但是你加上最后的分号 表示语句已经结束 就不会读取你下面大括号里面的内容了 所以会报错。
回复 使用道具 举报
  1. for(;;);{}
复制代码

前面的for循环是死循环后面的代码根本就没有执行的机会,java虚拟机会认为这一句是废话,所以才会报错。你把for循环和{}换下执行顺序换下就可以编译通过
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-5-28 22:54:20
12#
;和{}不能同时出现,;表示语句结束,而{}表示语句块。
回复 使用道具 举报
bin2015 发表于 2015-5-28 22:48
前面的for循环是死循环后面的代码根本就没有执行的机会,java虚拟机会认为这一句是废话,所以才会报错。你 ...

好像懂点了,谢谢,前边的确是死循环!
回复 使用道具 举报
灞波儿奔 发表于 2015-5-28 22:44
你for(;;);这个语句本身没问题   但是你加上最后的分号 表示语句已经结束 就不会读取你下面大括号里面的内 ...

有一定道理,谢谢
回复 使用道具 举报
小括号后面去掉分号
回复 使用道具 举报
君子无醉 发表于 2015-5-26 05:43
你也说了 for(;;);是一个语句 {}是一个语句,两条语句怎么能直接拼成一条呢?  而且{}这个不叫语句,叫做代码 ...

不错,差不多能理解了
回复 使用道具 举报
人在旅途~东营 发表于 2015-5-26 21:56
java中“;”就代表着语句的结束。其他的2楼解释的很清楚,for(;;){}是个死循环,使用循环语句记得加上 ...

是,还是自己基础掌握的不好!
回复 使用道具 举报
这个的错误是因为你前面是一个死循环,后面的代码就执行不到了,所以后面的语句就报错了
回复 使用道具 举报
加上;表示是空无循环类体,加上{}则表示有类体但是无内容。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马