2 votes

obtenir l'index d'un tableau pour une valeur particulière

ArrayIndex|Value|Running total
-------------------------------
   0      |  6  | 6
   1      |  1  | 7
   2      |  6  | 13
   3      |  2  | 15
I:array index
V:value
R:Running total

Je dois sélectionner l'indice approprié pour le total courant donné, par exemple 12 est le total courant donné, donc l'indice approprié est 2, je vais mettre mon bloc de code ci-dessous, il ne fonctionne pas, j'ai essayé d'utiliser break ; après l'instruction if ainsi, quelqu'un peut m'aider à résoudre ce problème s'il vous plaît :)

int running_total = 0;
boolean v=false;
    for(int x=0;x<=array.length;x++)
        {
        running_total+=array[x];
        if(running_total>=12)
            {
            if(v==false)
                {
                v= true;
                othermethods(x);
                }
            }
        }

1voto

dasblinkenlight Points 264350

La seule erreur dans votre méthode est que vous laissez x courir vers array.length inclus, provoquant un crash avec ArrayIndexOutofBoundsException lorsque le total est inférieur à 12.

Changez votre code en

for(int x=0 ; x < array.length ; x++) {
    ...
}

pour éviter le crash.

Un autre "point pour le style" est qu'au lieu d'écrire v==false il est plus conventionnel d'écrire !v . Enfin, puisque l'intention est de ne plus appeler othermethods(x) après avoir trouvé le premier index où le total courant satisfait à la condition, vous pouvez réécrire la boucle avec un break au lieu d'une variable booléenne :

for(int x=0 ; x < array.length ; x++) {
    running_total+=array[x];
    if(running_total >= 12) {
        othermethods(x);
        break;
    }
}

0voto

Narendra Pathai Points 12172
for(int x=0;x<array.length;x++)

la longueur va de 0 a n - 1 alors changez le <= dans la boucle pour <

0voto

akhil Points 85
int running_total = 0;
int x = 0;
for(x=0; x<array.length, running_total < 12; x++){
running_total += array[i];
}

//required index is x+1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X