Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    46

    Ciclo while con if elseif annidato

    Salve a tutti,
    ho creato un programma che confronta il valore di due variabili. Se sono diseguali il programma deve incrementare quella minore di 1 fino a quando entrambe non hanno lo stesso valore. Una volta che sono uguali il ciclo termina. Ho scritto il codice ma quando lo eseguo non ricevo nessun segnale ne tantomeno mi ritorna qualcosa. Ecco il codice, mi potete dire dove sbaglio?
    Codice PHP:
    $z=0
    while (
    $z=0)  

    $a=valore_scelto
    $b=valore_scelto
    if (
    $a<$b

    echo 
    "$a è il valore minore
    "

    $a++; 
    $z=0

    elseif (
    $a>$b

    echo 
    "$b è il valore minore
    "

    $b++; 
    $z=0

    else  

    echo 
    "$a e $b sono uguali
    "

    $z=1
    }  


  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    cambia
    Codice PHP:
    while ($z=0
    in
    Codice PHP:
    while ($z==0

  3. #3
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Va bene la didattica ed il $z==0 piuttosto del !$z o ancor meglio inizializzare $z=true, fare while($z), e settarlo solo nel caos in cui $a==$b a false... ma qui c'è un grave errore di logica che ti fa cadere in un ciclo infinito ,dato che a ogni iterazione reinizializzi $a e $b vanificando l'istruzione $a++ ovvero $b++.

    L'unico caso in sui non hai problemi è quando $a e $b sono uguali sin dalla prima iterazione.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    46
    Il ciclo infinito l'avevo già corretto, solo che quando ho postato mi son dimenticato di cambiare
    Invece non avevo proprio notato di aver scritto $z=0 e non $z==0
    Grazie a entrambi per la celere risposta!

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.