Re: [問題] 兩層以上的for迴圈break?

作者: JustinHere (良葛格)   2014-06-12 15:40:50
※ 引述《henry4343 (henry)》之銘言:
: 請問一下兩層以上的for迴圈要break有什麼好方法嗎?
: 目前的作法是:
: isBreak = fasle;
: for () {
: for () {
: if() {
: isBreak = true;
: break;
: }
: }
: if(isBreak) {
: break;
: }
: }
: 但如果再更多層不就要多一堆boolean判斷,原本在obj-c內用goto就沒這問題,
: 但java好像沒有goto的功能?
: 感謝
這種可以包成一個方法…不想用 label 的話…
ReturnType doFor(Param param) {
for() {
for() {
if() {
return yourResult1;
}
}
}
return yourResult2;
}
作者: lovelycateye (我還想要更多力量)   2014-06-13 13:53:00
推薦這篇作法,return 清楚明瞭
作者: JustinHere (良葛格)   2014-06-13 15:02:00
很多時候,抽出成一個方法,可以解決自覺醜醜的流程XD
作者: omidofor (媽媽咪呀)   2014-06-13 20:52:00
作者: foreverlord   2014-06-14 22:03:00
推 這個方法最直觀
作者: lovdkkkk (dk)   2014-06-14 23:11:00
不過 return 就只能全停,不能只停某幾層。
作者: lovelycateye (我還想要更多力量)   2014-06-16 16:04:00
可以分層抽出不同 function 啊XD
作者: lovdkkkk (dk)   2014-06-16 19:32:00
也是可以,只是就變成要跳多層要加判斷了。
作者: dsin (dior)   2014-06-17 17:15:00
有個問題 當每層都是抽成func 大家函數名都怎麼取好 加1,2,3?
作者: JustinHere (良葛格)   2014-06-18 06:59:00
看你那層迴圈實際做了些什麼就怎麼命名

Links booklink

Contact Us: admin [ a t ] ucptt.com