Java – La restituzione di un valore interrompe un ciclo?

Sto scrivendo del codice che fondamentalmente segue il seguente formato:

public static boolean isIncluded(E element) { Node c = head; while (c != null) { if (cursor.getElement().equals(element)) { return true; } c = c.getNext(); } return false; } 

Il codice cercherà un elemento in un elenco di nodes. Tuttavia, la mia domanda è che se il ciclo while trova l’elemento in cui l’istruzione if dice che dovrebbe restituire true, restituirà semplicemente true e interromperà il ciclo? Inoltre, se interrompe il ciclo, proseguirà con il metodo e restituirà ancora false, oppure il metodo sarà completato una volta che viene restituito un valore?

Grazie

Sì*

Sì, di solito (e nel tuo caso) esce dal ciclo e ritorna dal metodo.

Un’eccezione

Un’eccezione è che se c’è un blocco finale all’interno del ciclo e che circonda l’istruzione return, il codice nel blocco finally verrà eseguito prima che il metodo restituisca. Il blocco finally potrebbe non terminare, ad esempio potrebbe contenere un altro ciclo o chiamare un metodo che non restituisce mai. In questo caso non uscirai mai dal ciclo o dal metodo.

 while (true) { try { return; // This return technically speaking doesn't exit the loop. } finally { while (true) {} // Instead it gets stuck here. } } 

Il ritorno interrompe il ciclo e restituisce immediatamente dall’intero metodo. L’unico codice che verrà eseguito in uscita è il corpo di una clausola finally e il rilascio di qualsiasi istruzione synchronized .

Dovrei anche aggiungere che se vuoi interrompere l’attuale iterazione del ciclo e avviare immediatamente il prossimo, puoi usare:

 continue; 

Come sembra nessuno lo ha suggerito.

Sì.

Ad ogni modo, per domande così brevi, penso che sarebbe meglio (e ottenere una risposta precedente) provandolo da solo.

Restituisce ogni volta che viene chiamato un metodo da qualsiasi luogo e restituisce un valore al chiamante.