Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    3

    Mi dite dove sbaglio?

    Semplice esercizio...dal titolo capite ciò che voglio fare... mi viene un messaggio di alert con scritto NaN..ma non riesco a capire a cosa si riferisca..


    <html>

    <head>

    <title>Funzione che conta quante volte la lettera specifica si ripete nella parola</title>

    </head>

    <body>
    <script>
    var totale ;
    var contatore;
    var parola = prompt("Dimmi il nome della parola, usando caratteri alfabetici","");
    var lettera = prompt("Ora dimmi la lettera, e ti dirò se è presente nella parola, e in quale quantità", "");
    if (parola.indexOf(lettera)!= -1)
    {

    for (contatore =0; contatore <= parola.length; contatore++)

    { if (parola.charAt(contatore) == lettera )
    { totale = totale + 1;
    alert(totale);
    continue;

    }
    }
    }
    else
    alert("La lettera che hai scritto non è presente nel testo");
    }
    alert(" Ci sono "+ totale + " lettera/e nella parola " + parola);
    </script>
    </body>

    </html>

  2. #2
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    391
    ciao per risolvere il tuo problema ho assegnato 0 alla variabile totale dopo averla dichiarata e funziona, credo fosse solo un problema di inizializzazione della variabile.



    codice:
    <html>
    
    <head>
    
    <title>Funzione che conta quante volte la lettera specifica si ripete nella parola</title>
    
    </head>
    
    <body>
    <script>
    var totale ;
    totale=0; 
    var contatore;
    var parola = prompt("Dimmi il nome della parola, usando caratteri alfabetici","");
    var lettera = prompt("Ora dimmi la lettera, e ti dirò se è presente nella parola, e in quale quantità", "");
    if (parola.indexOf(lettera)!= -1)
    {
    
    for (contatore =0; contatore <= parola.length; contatore++)
    
    { if (parola.charAt(contatore) == lettera )
    { totale = totale + 1;
    alert(totale);
    continue;
    
    }
    }
    }
    else
    {
    alert("La lettera che hai scritto non è presente nel testo");
    }
    alert(" Ci sono "+ totale + " lettera/e nella parola " + parola);
    </script>
    </body>
    
    </html>
    attenzione che manca una parentesi graffa
    Da un grande potere derivano grandi responsabilità

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Mi dite dove sbaglio?

    Originariamente inviato da Freev
    ...dal titolo capite ciò che voglio fare...
    dal titolo della discussione, prima di aprirla, si deve capire cosa vuoi fare

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    3
    Ecco il codice rivisto...

    Ora però dopo aver inserito come parola "ciao" e la "c" come lettera, il programma si blocca.


    <script>
    var totale ;
    totale=0
    var contatore;
    var parola = prompt("Dimmi il nome della parola, usando caratteri alfabetici","");
    var lettera = prompt("Ora dimmi la lettera, e ti dirò se è presente nella parola, e in quale quantità", "");
    if (parola.indexOf(lettera)!= -1)
    {

    for (contatore =0; contatore <= parola.length; contatore++)

    { if (parola.charAt(contatore) == lettera )
    { totale = totale + 1; }


    continue; //fa proseguire il ciclo
    } //fine ciclo for
    alert(totale);
    }
    else {
    alert("La lettera che hai scritto non è presente nel testo");
    }
    alert(" Ci sono "+ totale + " lettera/e nella parola " + parola);
    </script>

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    3
    ho tolto else continue; e tutto funziona. Se c'è qualcuno che mi spiega il perchè gliene sarei grato

    grazie dell'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.