PDA

Visualizza la versione completa : [C]problema con il do-while


mimmoss
18-03-2009, 00:04
salve a tutti raga..ho un piccolo problema per la compilazione di questo ciclo do-while.
il vero ciclo è abbastanza complicato ma il problema fondamentale può essere spiegato mediante questo piccolo ciclo:


#include<stdio.h>
void main()
{
int N;
do
{

printf("inserire valore=");
scanf("%d",&N);
}while(N!=3&&N>5);
}

cioè in sostanza il while non mi permette di fare la doppia condizione.
io voglio infatti(con riferimento all esempio) che N sia contemporaneamente minore di 5 e diverso da 3,,ma qualcosa non va..infatti mi accetta il valore se è minore di 5 indipendentemente se esso è uguale o diverso da 3.
dove sbaglio??
spero che qualcuno mi possa aiutare.
ciao e grazie 1000 in anticipo.

YuYevon
18-03-2009, 08:12
Quando N == 3, questa condizione



N != 3 && N > 5


quale valore booleano assume? Vero o falso?

Cioè se N == 3 la prima condizione è falsa e la seconda pure, e poiché FALSO AND FALSO = FALSO, il do-while si arresta.

Pensa un po' a come la puoi riscrivere per ottenere quello che vuoi tu.

mimmoss
19-03-2009, 12:24
non so..
non riesco...anche se mettonel while ==3
si avrebbe vero and falso cioè falso...e esce dal ciclo...e ci risiamo..
booo...

KrOW
19-03-2009, 13:34
Ciao ... Il ciclo dovrebbe ripetersi se:
1) N è uguale a 3
2) N è maggiore/uguale a 5
quindi in codice:
1) N==3
2) N>=5
Si deve uscire dal ciclo se e solo se, nessuna delle 2 condizioni sopra riportate vengono riscontrate (quindi ci vuole un OR):

N==3 OR N>=5
in codice:
while(N==3 || N>=5)
Spero che di essere stato chiaro ...

Loading