2013-03-31 95 views
1

我正在研究一個項目,我在一個方法中有很多嵌套循環。我可以驗證我的代碼是否達到「返回true」;在「返回假」之前的陳述使用太多的System.out.println語句。Java返回不退出方法(循環)

是否有任何情況下返回不立即退出該方法。在我的代碼中,它達到了「返回true」,但後來繼續通過該方法工作。

謝謝 - 第一篇文章,但很長一段時間的學生來自其他問題

編輯:顯示我的代碼 - 這是加州大學伯克利分校的項目,所以他們不會允許我們發佈我們的全部代碼。這是重要的部分。

我的代碼中沒有「try語句」。這是我的方法有很多循環的最後一個(而&)循環。

if (x == 7 && turn == 5){ 
        System.out.println("TRUE RESULT"); 
        return true; 


       } 

       nextVictory(turn, x, y, color,z); 
       alive = false; 
      } 

     } 


      } 
    } 
    System.out.println("FALSE RESULT"); 
    return false; 
} 

我有打印語句來驗證我在哪裏。下面是結果:

真實結果

假的結果

假的結果

假的結果

假的結果

+6

顯示您的代碼。 – Patashu

+0

或者使用'finally'塊或者設置一個布爾值,並在完成後返回。 – Clark

回答

3

是否有任何情況下立即返回不退出該方法?

,想到的唯一情況是,如果return語句是一個try內 - finally塊。 finally塊仍然會執行。

可能會出現類似行爲的另一種情況是,如果您的方法是遞歸的。在這種情況下,嵌套調用中的return語句實際上會返回給調用者。但是,如果調用者本身是方法,則可能會出現繼續執行return之後的方法。

0

如果您的代碼到達return true行,則必須退出該方法。所以它沒有達到線路。在System.out.printlnreturn聲明之間發生了一些事情。如果您顯示代碼,這將有所幫助。

+0

用代碼更新 – Marcus