2013-04-05 4 views
-2

Dans cette fonction, une fois que mon instruction if devient vrai, elle retourne une valeur et il me « coups de pied » sur la fonction. J'essaie d'obtenir le reste des éléments de arrayList, donc je sais lesquels je ne vais pas y accéder. Ma question est, comment puis-je obtenir le reste des éléments de la matrice?ArrayList obtenir tous les éléments

For(Node a:state.children) 
{ 
    state.value = Math.max(state.value,min_value(a, alpha, beta)); 
    alpha = Math.max(alpha,state.value); 
    if(beta <=alpha) 
    { 
     System.out.println("The elements that are going to be skipped are: " + a.label); 
     return state.value; 
    } 
} 

Comment puis-je faire une copie des derniers éléments du tableau qui ne vont pas à utiliser en raison de la déclaration de retour

+1

ce que vous voulez comme résultat? – chintan

+2

C'est le concept de l'instruction 'return': arrêtez l'exécution sur la méthode lorsque vous appelez' return'. Donc, comme @chintan posté, quel est votre résultat attendu? –

+0

alors n'y at-il pas un moyen ou un pointeur qui pointe vers les derniers éléments? –

Répondre

0

Demandez à un autre ArrayList qui contiendra les valeurs non sautés. Pour ce faire, ajoutez un bloc else au bloc if existant. Dans le bloc else, ajoutez l'élément à l'ArrayList temporaire. Itérer à travers le temp ArrayList pour obtenir les valeurs non brouillées.

ArrayList<Node> tempList = new ArrayList<Node>(); 
For(Node a:state.children) 
{ 
    state.value = Math.max(state.value,min_value(a, alpha, beta)); 
    alpha = Math.max(alpha,state.value); 
    if(beta <=alpha) 
    { 
     System.out.println("The elements that are going to be skipped are: " + a.label); 
    } else { 
     tempList.add(a); 
    } 

} 
+0

Merci @Nandakishore –

+0

S'il vous plaît voter pour mon poste si c'était utile. – Kishore

+0

mais cela ne me laisse pas copier les derniers éléments –

0

Si vous ne voulez pas revenir de la fonction, n'avez pas le retour déclaration à l'intérieur du si. Si vous avez besoin de l'utiliser à l'extérieur, les stocker dans une collection et l'utiliser

+0

je dois y aller. Je suivais l'algorithme d'élagage alpha beta ... et il y a une pause –

+0

'break' va vous sortir de la boucle. 'continuer' passera la partie restante dans l'itération de la boucle et passera à l'itération suivante. 'return' sortira de la fonction. lequel est-ce que tu veux? – rajesh

Questions connexes