空循环可以用于延时,但是效果很差,一般单层的空循环延时效果非常差,无实际意义。另外无条件for循环如for(;;)其实相当于while(true),后者显然更好一些,我是指代码风格。而你说的是空循环体!这里就重要啦,给你看一个算法,虽然是c++写的,java也是同理。就是空循环体,for循环的写法很神奇,有...
Java中什么时候使用空循环体?
空循环可以用于延时,但是效果很差,一般单层的空循环延时效果非常差,无实际意义。
另外无条件for循环如for(;;)其实相当于while(true),后者显然更好一些,我是指代码风格。
而你说的是空循环体!这里就重要啦,给你看一个算法,虽然是c++写的,java也是同理。就是空循环体,for循环的写法很神奇,有时候迭代算法的for循环写法都可以空循环体。如图,最大公约数和字符串就地逆置算法中的for都是空循环体:
记住,空循环体和空循环不同,循环体虽然是空的,但是不表示循环没有作用,(initialization; condition; update)这三项足以执行一些复杂的任务了
java中最大公约这样写:
for(int tmp;a%b!=0;tmp=a,a=b,b=tmp%a);
是一样的,因为java中int型的0、1不对应boolean类型,而C++可以
2010-10-13
可以用的,用的时候让它根据一定的条件退出来就行了。例如
String bs="";
for(;;){
bs+="0";
System.out.println(bs);
if(bs.length()==10){
break;
// System.exit(0);
}
把这段代码粘贴到main方法里运行一下就可以看到效果了。2010-10-13
空循环可以延迟时间,但是时间长度很难把握,而且是在浪费性能。如果是为了延迟时间可以用线程的方式。
空循环体基本上没用。我没有用过。不过遇到特殊问题的时候空循环体可能能派上用场,只是经历太少,没有遇到过!2010-10-13
空循环无非就是用来起延时作用的。不过基本没有人会用空循环。
一般都用线程Thread类的sleep方法来延时。2010-10-13