2017-10-01 1 views
-5

Je ne suis pas sûr de savoir comment évaluer cette ligne pour comprendre ce que mon code ne while (i < data.Length & &! Résultat) {confus sur la façon d'évaluer le temps! Résultat dans la fonction while

c'est mon code complet.

public static boolean {2,6,-3,7,3} (int[] data, int val) { 
    boolean result = false; 
    int i = 0; 

    while (i < data.length && !result) { 
    if (data[i] == val) { 
     result = true; 
    } 
    i++; 
    } 
    return result; 
} 
+2

'public static boolean {2,6, -3,7,3}' n'est valable dans aucune langue que je connaisse. –

+2

Aussi ... quelle est exactement votre question? –

Répondre

1

La variable result est utilisé comme un moyen pour sortir de la boucle de temps avant i atteint data.length. Il provoque la fermeture de la boucle lorsque result devient true.

Il est équivalent à:

boolean result = false; 
int i = 0; 

while (i < data.length) { 
    if (data[i] == val) { 
     result = true; 
     break; // here we break from the loop explicitly when result becomes true 
    } 
    i++; 
} 

return result; 

ou encore plus simple:

int i = 0; 

while (i < data.length) { 
    if (data[i] == val) { 
     return true; // here we break from the loop using a return statement 
        // when a match is found 
    } 
    i++; 
} 

return false; 
1
boolean result = false; //initial declaration 
int i = 0; 

while (i < data.length && !result) { 
    if (data[i] == val) { 
     result = true; 
     // the !result evaluates to false once you've reached this statement 
    } 

Donc, dès que vous trouvez un match de val dans le data[]. Le débit éclate de la boucle puisque la condition devient

any() && false => false 

any() pourrait être vrai ou faux en fonction de votre première condition i < data.length.