Visualizzazione dei risultati da 1 a 4 su 4

Discussione: ciclo for

  1. #1

    ciclo for

    Salve, sto provando ad imparare javascript cercando di ripostare (con la stessa logica) programmi fatti con VB.
    Eppure mi trovo in difficoltà nel ciclo for.
    Come riportato nell'esempio un ciclo annidato non mi da il risultato che avevo previsto.
    Per confrontare il valore della varibile valorecarta [] ho scritto un loop annidato a due cicli di for, per trovare volorecarta[f]=volorecarta[k]. Per capire meglio provate:
    www.flavioronca.com/GIOCO%20carte/poker.html
    come potete notare visualizzo i valori delle carte, ma non mi trovo nell'istruzione for f e for k, nel quale dovrei vedere se ci sono carte dello stesso valore... (mi ritrovo sempre un valore(punteggio) uguale.
    N.B. il confronto per ora è solo sulle prime cinque carte.
    Dove sbaglio?


    codice:
    //for (f=1; f<=5; f++) {
    for (k=1; k<=5; k++) { 
    document.write ("Valore carta");
    document.write (valorecarta[k]+" ");
    if (valorecarta[k]=valorecarta[f]);{
    punteggio=punteggio+1;
    }
    }
    //}

    Grazie!!!
    Ultima modifica di ciro78; 20-03-2023 a 21:02 Motivo: tag code

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,705
    Ciao, non ho approfondito ma vedo due "evidenti" errori e qualche altra bad-practice.

    Primo errore: in JavaScript, a differenza di altri linguaggi come VB, l'operatore di confronto uguaglianza è dato da un doppio uguale (==), o un triplo uguale (===) nel caso di uguaglianza rigorosa.

    Il singolo uguale (=) invece è l'operatore di assegnazione.

    Nella tua condizione quindi devi usare il doppio (o eventualmente il triplo) uguale, non quello singolo, altrimenti non fai altro che riassegnare un nuovo valore a valorecarta[k] per ogni iterazione e, in questo caso, il risultato di quella espressione (cioè il valore restituito da valorecarta[f], non il valore dato dal confronto) sarà considerato come valore di verifica.

    Secondo errore: c'è un punto e virgola di troppo. In una istruzione "if" il punto e virgola non va messo tra la sua definizione (il blocco tra parentesi tonde) e il corpo (il blocco tra graffe).

    Prova a correggere questi errori e vedi che succede.

    Inoltre, un consiglio, meglio non abusare del metodo document.write(). Questo metodo infatti, se eseguito dopo che la pagina è completamente caricata, elimina l'intero HTML per rielaborare i dati indicati.
    Forse non è il tuo caso, perché lo stai eseguendo all'apertura della pagina ma, se l'intento è giusto quello di includere al volo degli elementi nella pagina, sarebbe comunque preferibile usare altri sistemi come il metodo appendChild() o la proprietà innerHTML di un eventuale elemento contenitore predisposto per questo, o altri metodi analoghi.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    tante grazie
    ho fatto le modifiche ed ora il risultato cambia

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    Ciao giornodipioggia,
    vedo che sei nuovo sul forum.

    Ricordati di leggere il regolamento e in particolare la sezione che riguarda titolo ed utilizzo del tag code.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.