Visualizzazione dei risultati da 1 a 4 su 4

Discussione: ciclo switch in array

  1. #1

    ciclo switch in array

    Ciao!

    Questa volta il codice incriminato è questo:

    <script language="javascript">


    var v= [];

    var numero= prompt("quanti numeri vuoi inserire?");

    for (i=0; i<numero; i++)

    v[i]= prompt("inserisci numero per posizione #"+i);

    for (i=0; i<v.length; i++){

    switch (v[i]) {

    case 22: alert("22 è presente");
    break;
    default: alert("22 non c'è");
    }
    }

    </script>

    Insomma vorrei che, inserendo il numero 22 all'interno dell'array, con lo switch mi venisse segnalato. Ciò che accade invece è che il 22 non viene mai segnalato come presente e inoltre l'alert viene ripetuto per tante volte quani sono gli elementi dell'array. Why?

    grazie per la pazienza
    Ciao

  2. #2
    Le soluzioni sono due:
    1)Nel frammento di codice

    switch (v[i]) {

    case "22": alert("22 è presente");
    break;
    default: alert("22 non c'è");

    basta che aggiungi delle virgolette nel case 22, come ho fatto io. Questo perchè la funzione prompt restituisce una stringa, e non un valore, quindi sei costretto a considerarlo comunque come se fosse un insieme di caratteri qualsiasi, indipendentemente dal fatto che è un numero.
    2)In alternativa

    var v= [];

    var numero= prompt("quanti numeri vuoi inserire?");

    for (i=0; i<numero; i++)

    v[i]= parseInt(prompt("inserisci numero per posizione #"+i));

    for (i=0; i<v.length; i++){

    switch (v[i]) {

    case 22: alert("22 è presente");
    break;
    default: alert("22 non c'è");
    }
    }

    In questo modo utilizzi parseInt per convertire la stringa del prompt in numero. Te lo consiglio, anche se non sono un programmatore esperto(ho solo 15 anni!!), perchè così puoi ampliare lo switch senza preoccuparti di aggiungere sempre le virgolette a tutti i case.

    Spero di esserti stato utile

  3. #3
    Ah mi sono dimenticato del problema di default. Prova a eliminarlo e sostituirlo con un if:

    var v= [];
    var presente = false;
    var numero= prompt("quanti numeri vuoi inserire?");

    for (i=0; i<numero; i++)

    v[i]= parseInt(prompt("inserisci numero per posizione #"+i));

    for (i=0; i<v.length; i++){

    switch (v[i]) {

    case 22: alert("22 è presente");
    presente = true;
    break;
    niente default
    }
    }

    if (!presente)
    {
    alert("22 non è presente");
    }

  4. #4
    Utilissimo e grazie della spiegazione!!

    Alla prossima, ciao!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.