如果一个需求,不知道循环了多少次,使用while循环。 在看JDK源码的时候发现,“死循环”有两种写法:for(;;)和while(true),我就疑问,两者有啥区别,有啥源码中多数是for(;;)这种形式的。 //编译前 //编译后 while (1); mov eax,1testeax,eaxjefoo+23hjmpfoo+18h//编译前 //编译后 for (;;); jmp f...
for(;;)和while(true)区别 从寓意上来看,两种写法都是无限循环 从效率上看,while(true)每次循环要判断循环条件,for(;;)循环没有判断,理论上节省机器指令。 下面我们就通过查看编译后的代码,来证明以下for(;;)和while(true)的区别 首先整理一个带编译的测试代码,如下 通过javac 将Test.java 编译成Test.class ...
表达式的值为True则继续循环;表达式的值为False则结束循环。
也就是说两者在在宏观上完全一样的逻辑,但是底层完全不一样,for相对于来说更加简洁明了。 梅花香自古寒来
while(true) 更直观,容易理解和维护。 for(;;) 是一种简洁但稍显晦涩的写法,适合老练的程序员使用。 实际应用场景: 开发中更注重代码的可读性和规范性,因此通常建议使用while(true)。 实际区别是否存在? 在某些极端情况下,可能存在微小的差异: 历史背景:在早期的 Java 版本中(如 JDK 1.4 之前),某些编译器可...
for( ;; )和while(true)的区别,喜欢看源码的同学可能都会发现,很多组件的作者在做死循环时,都喜欢用for(;;),while(true)或者while(1)也能实现死循环,为啥大佬们都用for(;;)呢我们看下这两者的字节码publicclassForTest{publicstaticvoidmain(String[]args){for(;;){
区别一:使用场景不同:知道执行次数的时候一般用,条件循环时一般用while。区别二:两种循环在构造死循环时的区别:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,...
while循环根据一个条件表达式的值判断是否继续执行循环。只要条件为True,就会一直执行循环体内的代码块。语法如下:while 条件表达式:# 执行特定操作 例如,可以使用while循环计算斐波那契数列的前100个数。示例代码如下:a, b = 0, 1 count = 0 while count < 100:(tab)print(a)(tab)a, b = b, a + b ...
技术标签:for(;;)和while(true)的区别 (一)Java中 for(;;)和while(true)都是死循环。 1.0 代码: for @Test public void test(){ for(;;){ ... 查看原文 Now you can provide attr "wx:key" for a "wx:for" to improve performance.