Soddisfare due condizioni assieme
Soddisfare due condizioni assieme postato il 07/06/2012 21:10:17 nel forum programmazione, open source e hosting e modificato da raccoon il 07/06/2012 21:10:48
Salve a tutti, premetto che sto muovendo i miei primi passi nel mondo della programmazione, e quindi mi scuso in anticipo per i possibili strafalcioni che farò.
In breve, mi serve un modo che permetta di verificare quali condizioni vengono soddisfatte, e stampi la stringa adeguata, in base a quello.
Avevo creato, molto ingenuamente, il seguente codice (errato perchè da quel che ho capito IF e AND non si usano assieme(?), ma ve lo copio in modo che capiate che cosa voglio fare):
<? IF ($roling >= 0.0 && $roling <=4.9) AND ($giorni < 14)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 0.0 && $roling <=4.9) AND ($giorni >= 14)
{echo "Prestavolto Libero!";}
ELSE IF ($roling >= 5.0 && $roling <=19.9) AND ($giorni < 30)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 5.0 && $roling <=19.9) AND ($giorni >= 30)
{echo "Prestavolto Libero!";}
ELSE IF ($roling >= 20.0 && $roling <=49.9) AND ($giorni < 60)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 20.0 && $roling <=49.9) AND ($giorni >= 60)
{echo "Prestavolto Libero!";}
ELSE IF ($roling >= 50.0 && $roling <=99.9) AND ($giorni < 90)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 50.0 && $roling <=99.9) AND ($giorni >= 90)
{echo "Prestavolto Libero!";}
ELSE IF ($roling >= 100.0 && $roling <=199.9) AND ($giorni < 120)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 100.0 && $roling <=199.9) AND ($giorni >= 120)
{echo "Prestavolto Libero!";}
ELSE IF ($roling >= 200.0) AND ($giorni < 150)
{echo "Prestavolto occupato!";}
ELSE IF ($roling >= 200.0) AND ($giorni >= 150)
{echo "Prestavolto Libero!";}
?>
Per fare un esempio, se fosse stata soddisfatta la condizione per cui la variabile $roling fosse risultata tra 0.0 e 4.9, e la variabile $giorni fosse risultata minore di 14, sarebbe stata stampata la stringa "Prestavolto occupato".
Ho provato in diversi modi ma essendo alle primissime armi mi sfugge come potrei fare.
Sapreste aiutarmi?
Pagine → 1
07/06/2012 21:20:40 e modificato da hikari87 il 07/06/2012 21:21:33
Ciao ^.^
beh, leggendo il codice non hai bisogno di tutte queste parentesi perché tutte le condizioni devono essere soddisfatte ^.^
Se avessi un or (||) allora sarebbe necessario usarle per raggruppare le condizioni
raccoon ha scritto:
<? IF ($roling >= 0.0 && $roling <=4.9) AND ($giorni < 14)
{echo "Prestavolto occupato!";}
?>
Usando solo questa verrebbe
<? IF ($roling >= 0.0 && $roling <=4.9 && $giorni < 14)
{echo "Prestavolto occupato!";}
?>
mi raccomando, impara subito la buona abitudine di indentare tutto quanto ^.^
07/06/2012 21:28:27
hikari si è dimenticata di dire che il tuo codice come logica andava bene. Hai sbagliato solo la sintassi. L'istruzione and va messa DENTRO alla parentesi dell'if, non fuori.
if(condizione1 && condizione2 || condizione3){
azioni;
}
P.S.: usa && invece che and, usa || invece che or. and e or posso procurare molti grattacapi se non si conosce i loro effetti collaterali.
07/06/2012 21:32:11
Grazie mille ad entrambi, innanzitutto adesso funziona, e poi ho capito un paio di cose che non sapevo ;) è consolante sapere di aver sbagliato solo la sintassi.
Ancora grazie!
07/06/2012 21:41:20
Di nulla ^.^
e vedrai che con il tempo riuscirai a spaventare le persone per quanto sarà automatico :P
08/06/2012 18:19:05
Occhio alla priorità delle condizioni... l'and (&&) ha priorità sull'or (||).
Mi era venuto il dubbio e me l'hai tolto completamente, grazie!
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of Warship ↗
Wuthering Waves ↗
Enlisted ↗
War Thunder ↗
Hero Wars ↗