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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Rao^Yang 中级黑马   /  2015-6-13 22:13  /  1533 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天考试,遇到一个题:for(; ;); 和while(x<5); 各位求解一下,在循环语句后面加分号,有何意义呢

25 个回复

正序浏览
java中语句一都是用 ; 或者 {}来表示语名结束。 弱弱问下 for(;;);这个有什么意义呢?   
回复 使用道具 举报
代表语句结束啥
回复 使用道具 举报
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:}

点评

不错  发表于 2015-6-15 00:29
回复 使用道具 举报
是一个无限循环,加了分好后不能执行后面的代码(for的;后面加代码会报错)
回复 使用道具 举报
for(; ;);会死在这里,知道虚拟机停止, while(x<5); 如果,x没有被定义,比哪一报错,若果定义了,并且真的小于5,效果和上边这货一样, 如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
回复 使用道具 举报
没有语法错误,就是执行时候没有任何意义,就是废话
回复 使用道具 举报
测试题吧。。应该都是死循环,如果分开编译的话没有问题。
for(;;);连着写个while(x<5);会报错。
循环语句后+直接+;应该代表结束循环体,也就是说这个for和while并没有循环体。
for(;;);肯定是死循环了。
while(x<5);如果x的值<5就是死循环,>5就跳过循环。
回复 使用道具 举报
为了语句结束,必须要加分号,如果后面有一队 { } 就不用加了,因为 } 可以代表结束
回复 使用道具 举报
;是结束语句 表示不执行循环体。
回复 使用道具 举报
然而这代码并没有什么卵用
回复 使用道具 举报
楼上的分析不错
回复 使用道具 举报
前面的for是个死循环
回复 使用道具 举报

for(; ;);会死在这里,直到虚拟机停止,
while(x<5); 如果,x没有被定义,编译报错,若果定义了,并且真的小于5,效果和上边这货一样,
如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
回复 使用道具 举报
for(; ;);会死在这里,知道虚拟机停止,
while(x<5); 如果,x没有被定义,比哪一报错,若果定义了,并且真的小于5,效果和上边这货一样,
如果,x 不小于5 while语句条件不成立,程序会继续向下执行。
这么说明白吗
回复 使用道具 举报
空循环,相当于延迟了一下时间,其实没有什么卵用。
回复 使用道具 举报
加;,说明这是一个语句的结束
回复 使用道具 举报
语法没错,我被坑了
回复 使用道具 举报
lwen 中级黑马 2015-6-13 23:24:29
8#
这种格式只在面试题里更有意义,考你的基础
回复 使用道具 举报
王骥 中级黑马 2015-6-13 23:14:15
7#
我也想知道for(;;);是什么意思
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马