黑马程序员技术交流社区

标题: while和for里的条件判断 [打印本页]

作者: 邹海洋    时间: 2012-8-31 14:00
标题: while和for里的条件判断
两个最简单的死循环
while(true){}
for(;;){}
为什么前者条件判断里要写true,而后者会默认为true?
作者: 黄珊珊    时间: 2012-8-31 14:12
while(true) 不是默认为true,而是里面判断条件一直设定为了true,当它一直为true时,就一直满足条件,它其实是一个无限循环;一般会在while中加入一些判断条件。
for循环的格式:(初始化条件;判断条件;表达式),当要满足for循环里面的判断条件后,才会为true,才会执行。
作者: 邹海洋    时间: 2012-8-31 14:18
黄珊珊 发表于 2012-8-31 14:12
while(true) 不是默认为true,而是里面判断条件一直设定为了true,当它一直为true时,就一直满足条件,它其 ...

你好,谢谢你的回答 但是你好像没看清我要问的是什么 呵呵
作者: 黄珊珊    时间: 2012-8-31 14:24
邹海洋 发表于 2012-8-31 14:18
你好,谢谢你的回答 但是你好像没看清我要问的是什么 呵呵

while(true){}
for(;;){}
为什么前者条件判断里要写true,而后者会默认为true?
前面条件里面写true是为了让条件一直满足,一直可以执行while体中的代码。
而for什么都不写的时候表示无条件循环。


作者: 陈莹    时间: 2012-8-31 14:27
while(true){}
for(;;){}
首先while循环的格式你肯定知道,括号里肯定是一个boolean类型的。
对于for循环,它的格式是for(初始化表达式;判断条件;表达式)
假如你没有判断条件,那么程序就会一直执行下去,就像你跑步,没有规定终点,那你就一直跑,不能停下来,并不是你说的默认的true。而是你没有约束条件来让程序停止。明白了吗?
作者: 邹海洋    时间: 2012-8-31 14:32
黄珊珊 发表于 2012-8-31 14:24
while(true){}
for(;;){}
为什么前者条件判断里要写true,而后者会默认为true?

为什么while里面什么都不写就不能表示无条件循环呢

作者: 邹海洋    时间: 2012-8-31 14:35
陈莹 发表于 2012-8-31 14:27
while(true){}
for(;;){}
首先while循环的格式你肯定知道,括号里肯定是一个boolean类型的。

FOR里面的判断条件得出的结果不也是一个BOOLEAN类型的值吗?

作者: 黄珊珊    时间: 2012-8-31 14:45
邹海洋 发表于 2012-8-31 14:32
为什么while里面什么都不写就不能表示无条件循环呢

java体制决定的,这是java的语法规范;大家都通过这个标准来使用java。
作者: 孙沛    时间: 2012-8-31 14:45
while中只有true才会进入循环体内,否则不会进入循环
for默认是进入循环体内循环的
作者: 陈莹    时间: 2012-8-31 14:52
邹海洋 发表于 2012-8-31 14:35
FOR里面的判断条件得出的结果不也是一个BOOLEAN类型的值吗?

但是现在不是没有条件表达式吗?就没有表达式的值了啊,那就表示没有条件来限制程序的运行,就像你进教室,以前有门,要是开着你就能进,没有开着你就不能进,现在省略了表达式,就相当于没有门了,没有条件来限制程序的运行了。
而且规定for循环中的判断条件表达式可以省略,但是while循环不可以,百度百科中这样解释:
for循环中的"参数初始化表达式"、"条件表达式"和"更新循环变量表达式"都是选择项, 即可以缺省, 但";"不能缺省。省略了初始化, 表示不对循环控制变量赋初值。 省略了条件表达式, 则不做其它处理时便成为死循环。省略了增量, 则不对循环控制变量进行操作, 这时可在语句体中加入修改循环控制变量的语句。
作者: 邹海洋    时间: 2012-9-2 10:40
谢各位 鲜花掌声 送给大家 呵呵




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