Il linguaggio JavaScript
 

Non riesco proprio ad uscire da questo while loop...

Sap7 7 Ago 2015 23:56
Sono incastrato in un loop e non riesco a capirne il motivo.


Praticamente devo creare un numero random ed uscire dal ciclo solo se
questo numero non è contenuto in un'altra array.
Se lo è, randomizzo un ulteriore numero fino al verificarsi della
condizione precedente.

Questo è il mio codice.

var i = 0;
do
{
indice = Math.floor((Math.random() * max) + 1);
if ($.inArray(indice, GiocatoriEstratti) < 0) {
i = 1;
}
}
while (i != 0);

//Altro codice da eseguire una volta uscito dal loop...



L'ho modificato 10000 volte ma il while mi va in un loop infinito e non
esce mai.

Dove sbaglio?
Andrea Scartabelli 8 Ago 2015 08:41
On 07/08/15 23:56, Sap7 wrote:
> Praticamente devo creare un numero random ed uscire dal ciclo solo se
> questo numero non è contenuto in un'altra array.
> Se lo è, randomizzo un ulteriore numero fino al verificarsi della
> condizione precedente.
>
> Questo è il mio codice.
>
> var i = 0;
> do
> {
> indice = Math.floor((Math.random() * max) + 1);
> if ($.inArray(indice, GiocatoriEstratti) < 0) {
> i = 1;
> }
> }
> while (i != 0);
>
> L'ho modificato 10000 volte ma il while mi va in un loop infinito e non
> esce mai.
>
> Dove sbaglio?

Ti sei in*****ato con quella variabile "i": non viene trovato il numero,
"i" diventa uno e non cambia più impedendo l'uscita dal ciclo che
continua finché "i" è diverso da zero.

Eliminando la variabile "i":

do {
n = random();
} while (numeriEsistenti.indexOf(n) !== -1);

Ho usato "Array.prototype.indexOf" visto che esiste anche nel vecchio
IE9
(<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf>),

ma vedi tu se usare jQuery.
Sap7 8 Ago 2015 09:00
Il 08/08/2015 08.41, Andrea Scartabelli ha scritto:
> do {
> n = random();
> } while (numeriEsistenti.indexOf(n) !== -1);

Ti ringrazio, ora ho risolto e ho anche capito.
Grazie!

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio JavaScript | Tutti i gruppi | it.comp.lang.javascript | Notizie e discussioni javascript | Javascript Mobile | Servizio di consultazione news.