Java中啥时候使用空循环体?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中啥时候使用空循环体?相关的知识,希望对你有一定的参考价值。

空循环体也要使用完整的块
for (initialization; condition; update)
;

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++可以

参考技术A 可以用的,用的时候让它根据一定的条件退出来就行了。例如
String bs="";
for(;;)
bs+="0";
System.out.println(bs);
if(bs.length()==10)
break;
// System.exit(0);


把这段代码粘贴到main方法里运行一下就可以看到效果了。
参考技术B 空循环可以延迟时间,但是时间长度很难把握,而且是在浪费性能。如果是为了延迟时间可以用线程的方式。
空循环体基本上没用。我没有用过。不过遇到特殊问题的时候空循环体可能能派上用场,只是经历太少,没有遇到过!
参考技术C 空循环无非就是用来起延时作用的。不过基本没有人会用空循环。
一般都用线程Thread类的sleep方法来延时。

以上是关于Java中啥时候使用空循环体?的主要内容,如果未能解决你的问题,请参考以下文章

java中啥时候该用static修饰方法?有啥好处或者坏处?

Java开发中啥是垃圾回收?

举一个好例子说明java中啥情况下用过滤器,啥时候用拦截器,啥时候用侦听(没分了,但想知道真相)

Java中啥时候需要显示重载toString方法

Java中啥时候需要显示重载toString方法

sql server中啥是聚合函数