黑马程序员技术交流社区

标题: 关于for语句的疑惑? [打印本页]

作者: Rao^Yang    时间: 2015-6-13 22:13
标题: 关于for语句的疑惑?
今天考试,遇到一个题:for(; ;); 和while(x<5); 各位求解一下,在循环语句后面加分号,有何意义呢

作者: candy_xue    时间: 2015-6-13 22:26
没什么意义  但是语法上没什么错
作者: 痞子刘忙    时间: 2015-6-13 22:38
意义在于老师考你是不是细心,语法没错,运行没意义。
作者: zhang5437    时间: 2015-6-13 22:59
表示这个代码块结束了啊
作者: q757571446    时间: 2015-6-13 23:00
赞一个,哦也
作者: dcw2015    时间: 2015-6-13 23:12
;前面没有任务代码表示的是一个空语句,java中语句一都是用 ; 或者 {}来表示语名结束。for(; ;);和while(x<5);代表的是两个死循环(x<5为true的话)。语句后面的;就是循环体。不加;会出现编译报错。
作者: 王骥    时间: 2015-6-13 23:14
我也想知道for(;;);是什么意思
作者: lwen    时间: 2015-6-13 23:24
这种格式只在面试题里更有意义,考你的基础
作者: 朱智琳    时间: 2015-6-13 23:48
语法没错,我被坑了
作者: zhaopy    时间: 2015-6-14 07:40
加;,说明这是一个语句的结束
作者: YongBao_Summer    时间: 2015-6-14 08:01
空循环,相当于延迟了一下时间,其实没有什么卵用。
作者: 柒仴、看雲佉    时间: 2015-6-14 18:36
for(; ;);会死在这里,知道虚拟机停止,
while(x<5); 如果,x没有被定义,比哪一报错,若果定义了,并且真的小于5,效果和上边这货一样,
如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
这么说明白吗
作者: 柒仴、看雲佉    时间: 2015-6-14 18:37

for(; ;);会死在这里,直到虚拟机停止,
while(x<5); 如果,x没有被定义,编译报错,若果定义了,并且真的小于5,效果和上边这货一样,
如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
作者: 少年闰土    时间: 2015-6-14 21:20
前面的for是个死循环
作者: zhenxing133    时间: 2015-6-14 21:36
楼上的分析不错
作者: 付欢    时间: 2015-6-14 21:45
然而这代码并没有什么卵用
作者: cz19900606    时间: 2015-6-14 21:46
;是结束语句 表示不执行循环体。
作者: zlpiano    时间: 2015-6-14 21:54
为了语句结束,必须要加分号,如果后面有一队 { } 就不用加了,因为 } 可以代表结束
作者: 安安安    时间: 2015-6-14 22:05
测试题吧。。应该都是死循环,如果分开编译的话没有问题。
for(;;);连着写个while(x<5);会报错。
循环语句后+直接+;应该代表结束循环体,也就是说这个for和while并没有循环体。
for(;;);肯定是死循环了。
while(x<5);如果x的值<5就是死循环,>5就跳过循环。
作者: 金亮0602    时间: 2015-6-14 22:31
没有语法错误,就是执行时候没有任何意义,就是废话
作者: 杨凯瑞    时间: 2015-6-14 22:38
for(; ;);会死在这里,知道虚拟机停止, while(x<5); 如果,x没有被定义,比哪一报错,若果定义了,并且真的小于5,效果和上边这货一样, 如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
作者: 武汉小菜鸟    时间: 2015-6-14 23:56
是一个无限循环,加了分好后不能执行后面的代码(for的;后面加代码会报错)
作者: gincoo    时间: 2015-6-15 00:27
for语句中:
for(; ;); 这条语句,括号内部看似什么都没有,其实在for语句中什么都不写,系统将会默认都写true的。
所以相当于for(true;true;true); 系统是这么读写的,初始为true,然后判断true,然后又true,系统碰上分号会继续返回循环体继续进行判断,所以你电脑的cpu会一直运转。陷入死循环。

while循环语句中:
你的while(x<5); 的前面应该有定义x的类型和x的初始值。与上面的for ( ; ; ) ; 一样,这条也是死循环。因为while(x<5);的后面没有循环体。它碰上“;"会继续判断x是否小于5(x<5)。一直不断的重复判断,陷入死循环,直到你cpu烧掉。

如何结束死循环?
ctrl+c,确认即可{:2_30:}
作者: zc强盗    时间: 2015-6-15 00:55
代表语句结束啥
作者: 李俊超    时间: 2015-6-15 09:52
java中语句一都是用 ; 或者 {}来表示语名结束。 弱弱问下 for(;;);这个有什么意义呢?   




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