带有空语句的java for循环
我最近在一些java代码中看到了以下模式。谁能给我解释一下吗?这个for循环意味着什么带有空语句的java for循环,java,Java,我最近在一些java代码中看到了以下模式。谁能给我解释一下吗?这个for循环意味着什么 for (;;) { try { // do something } catch (Exception e) { if (e instanceof SomeException) { break; } } } 这将形成一个无止境的循环,所以你需要休息来摆脱它。这将形成一个无止境的循环,所以你需要休
for (;;) {
try {
// do something
} catch (Exception e) {
if (e instanceof SomeException) {
break;
}
}
}
这将形成一个无止境的循环,所以你需要休息来摆脱它。这将形成一个无止境的循环,所以你需要休息来摆脱它。这将形成一个无止境的循环,所以你需要休息来摆脱它。这将形成一个无止境的循环,所以你需要休息来摆脱它。
而(true){..}
如果没有“结束条件”,for的
将永远循环。。或者直到中断
或返回
或传播异常或JVM终止。(对于这种类型的循环,它相当于而(true){..}
,对于的的其他部分也被省略,因为它们没有被使用。)
在这种情况下,当且仅当捕捉到某种类型的异常时,才会调用一个中断。否则,代码将继续循环,可能会一次又一次地重试特定操作,同时忽略某些类型的异常。(这可能是一个“聪明的程序员”将异常用于流控制的情况。)
注:
// loop "forever" ..
for (;;) {
try {
// .. and perform some action ..
} catch (Exception e) {
if (e instanceof SomeException) {
// .. but terminate the loop on a certain exception ..
break;
}
// .. or otherwise loop again (even on an exception)
}
}
tldr<(;;){..}
的code>在语义上等同于而(true){..}
如果没有“结束条件”,for的将永远循环。。或者直到中断
或返回
或传播异常或JVM终止。(对于这种类型的循环,它相当于而(true){..}
,对于的的其他部分也被省略,因为它们没有被使用。)
在这种情况下,当且仅当捕捉到某种类型的异常时,才会调用一个中断。否则,代码将继续循环,可能会一次又一次地重试特定操作,同时忽略某些类型的异常。(这可能是一个“聪明的程序员”将异常用于流控制的情况。)
注:
// loop "forever" ..
for (;;) {
try {
// .. and perform some action ..
} catch (Exception e) {
if (e instanceof SomeException) {
// .. but terminate the loop on a certain exception ..
break;
}
// .. or otherwise loop again (even on an exception)
}
}
tldr<(;;){..}
的code>在语义上等同于而(true){..}
如果没有“结束条件”,for的将永远循环。。或者直到中断
或返回
或传播异常或JVM终止。(对于这种类型的循环,它相当于而(true){..}
,对于的的其他部分也被省略,因为它们没有被使用。)
在这种情况下,当且仅当捕捉到某种类型的异常时,才会调用一个中断。否则,代码将继续循环,可能会一次又一次地重试特定操作,同时忽略某些类型的异常。(这可能是一个“聪明的程序员”将异常用于流控制的情况。)
注:
// loop "forever" ..
for (;;) {
try {
// .. and perform some action ..
} catch (Exception e) {
if (e instanceof SomeException) {
// .. but terminate the loop on a certain exception ..
break;
}
// .. or otherwise loop again (even on an exception)
}
}
tldr<(;;){..}
的code>在语义上等同于而(true){..}
如果没有“结束条件”,for的将永远循环。。或者直到中断
或返回
或传播异常或JVM终止。(对于这种类型的循环,它相当于而(true){..}
,对于的的其他部分也被省略,因为它们没有被使用。)
在这种情况下,当且仅当捕捉到某种类型的异常时,才会调用一个中断。否则,代码将继续循环,可能会一次又一次地重试特定操作,同时忽略某些类型的异常。(这可能是一个“聪明的程序员”将异常用于流控制的情况。)
注:
// loop "forever" ..
for (;;) {
try {
// .. and perform some action ..
} catch (Exception e) {
if (e instanceof SomeException) {
// .. but terminate the loop on a certain exception ..
break;
}
// .. or otherwise loop again (even on an exception)
}
}
如果没有“break”语句,该循环将无限期地循环。无论退出条件是什么,“break”语句都会留下一个循环
您拥有的代码块将继续在“Try”块中执行操作,直到抛出SomeException。一旦抛出SomeException,循环将退出。检查是否抛出SomeException不能在循环声明中完成,因此循环被告知永远循环。然后在循环体中指定循环结束的条件。如果没有“break”语句,该循环将无限期地循环。无论退出条件是什么,“break”语句都会留下一个循环
您拥有的代码块将继续在“Try”块中执行操作,直到抛出SomeException。一旦抛出SomeException,循环将退出。检查是否抛出SomeException不能在循环声明中完成,因此循环被告知永远循环。然后在循环体中指定循环结束的条件。如果没有“break”语句,该循环将无限期地循环。无论退出条件是什么,“break”语句都会留下一个循环
您拥有的代码块将继续在“Try”块中执行操作,直到抛出SomeException。一旦抛出SomeException,循环将退出。检查是否抛出SomeException不能在循环声明中完成,因此循环被告知永远循环。然后在循环体中指定循环结束的条件。如果没有“break”语句,该循环将无限期地循环。无论退出条件是什么,“break”语句都会留下一个循环
您拥有的代码块将继续在“Try”块中执行操作,直到抛出SomeException。一旦抛出SomeException,循环将退出。检查是否抛出SomeException不能在循环声明中完成,因此循环被告知永远循环。然后在循环体中指定循环结束的条件。这相当于以下内容:
while(true) {
try {
// Do something
} catch(Exception e) {
if(someCondition)
break;
}
}
循环将一直运行,直到异常处理程序显式断开它为止
请注意,这(以及(;;)
)的)将