黑马程序员技术交流社区

标题: 关于for循环的一个小知识点 [打印本页]

作者: 黑马-张洋    时间: 2013-2-25 11:33
标题: 关于for循环的一个小知识点
今天竟然得知for(;;){}居然是一个死循环,当然我可以当一个单词记着,这丫就是一个死循环,然后就完了。。

但是我深感不爽,java的规矩里面为什么要这样设计?

这样设计有什么好处?

谢谢大家了
作者: 陈圳    时间: 2013-2-25 11:38
for(;;)
和while(true){}是一样的,for和while()也是可以互换的,唯一的区别,for()里定义的是局部变量,而while()内定义的变量必须要使用时定义好.
作者: 曹春贵    时间: 2013-2-25 11:49
  1. for(初始化表达式:循环条件表达式:循环后的操作表达式)
  2. {
  3. 执行语句;
  4. }
  5. 不能说for(::){}被java规定它是一个死循环,而应该说,在for语法的规定下,按照条件执行下来后,它的表现形式成为了一种死循环
复制代码

作者: 折纸时代    时间: 2013-2-25 11:52
for循环如果不定义条件表达式,则默认条件为true. 所以是死循环.
这样做有利也有弊.  
利是这样很方便,简单.
弊来说倒感觉不大,除非无意间写错了.

什么存在就有存在的意义..  如果程序员不谨慎写成这样了, 要JVM报错么? 容错就太低了.  
个人理解.
作者: 宋蓬勃    时间: 2013-2-25 12:17
死循环也是一个功能啊,可以用break跳出循环。
循环就是一段代码重复执行。有时候要求复杂,不能简单地用for(;;)来判断运行时间。
可以在死循环内部再重新定义跳出条件。
作者: 黄玉昆    时间: 2013-2-25 12:23
应该说是for循环的规则决定着java会出现这种情况,for中默认是这样的,像楼上说的一样。其实,你可以想一想,java中每个东西都有自身默认的值,而且,那些看似不确定的,其实都是确定的,就拿接口 Iterator<E>来说吧,看似这E是不不确定的类型,但是确实固定的,就是你传入什么类型就是什么类型。
所以,每个事物在一出现的时候,都必须有各自的初始值。举个例子说吧,就说人吧,出生了就有手脚,五官等等。java也是一样的。所以,





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