這是我的第一篇文章,很抱歉,如果我發布的內容不正確或不完整,我會回答每一個問題,并愿意改進。
我的main方法有一個for回圈,里面有遞回方法,遞回方法也有for回圈(遞回方法基本上替代了很多嵌套的for回圈)。當達到特定情況時,我想跳出遞回方法并跳出我的 main 中的 for 回圈。對于可視化:
public static void main(..)
for (int i = 0, i < 100 ; i ) {
//do something
recursivemethod(...)
}
//jump here, if case in method is reached
------------------------
recursivemethod (...)
for (int i = 0; i < 10 ; i ) {
//do something
if (case reached) {//jump out of loop in main}
else {recursivemethod(modified)}
}
由于我無法在 main 和break Label;我的方法中標記我的 for 回圈(據我所知),我嘗試使用布林值,但由于 for 回圈和/或遞回呼叫,布林值切換回并且沒有想要的效果。
有一個類似的問題,用戶后來添加了他的解決方案,但沒有詳細說明它足以讓我理解以及如何在我的代碼中實作這一點,該用戶是幾年前最后一次見到的,所以我不能問他。有人可以幫幫我嗎?
非常感謝!
uj5u.com熱心網友回復:
您可能想從遞回方法中回傳布林值。例如 true 表示遞回 call8ng 應該停止并退出回圈
for (int i = 0, i < 100 ; i ) {
//do something
if(recursivemethod(...))
break;
}
遞回方法
boolean recursivemethod (...) {
for (int i = 0; i < 10 ; i ) {
//do something
if (case reached) {return true;}
else {return recursivemethod(modified)}
return false;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397100.html
上一篇:我在我的代碼中遇到了一些問題。一切正常,直到用戶輸入是一個字串。任何人都可以幫助我處理例外嗎?
下一篇:從帶有泛型的串列中選擇正例
