Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Il ciclo Do-While non funziona?
Forum - C/C++ - Il ciclo Do-While non funziona?

Avatar
Faby_941 (Normal User)
Newbie


Messaggi: 12
Iscritto: 13/03/2018

Segnala al moderatore
Postato alle 9:38
Giovedì, 26/04/2018
Ciao a tutti, ho scritto un frammento di codice davvero semplice e mi sembra giusto.. solo che non funziona come dovrebbe:d:d

ecco il codice:

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main () {
    int flag;

printf("\n\nPREMI 1 PER INSERIRE ALTRE REFERENZE, 0 PER PASSARE ALLO STOCK, 2 PER ANNULLARE E RINIZIARE L'INSERIMENTO PICKING:\n\n");
cin>>flag;
if(flag!=1 || flag!=0 || flag!=2) {
do{
printf("\n\nERRORE! valore non valido\n\n")    ;
printf("PREMI 1 PER INSERIRE ALTRE REFERENZE, 0 PER PASSARE ALLO STOCK, 2 PER ANNULLARE E RINIZIARE L'INSERIMENTO PICKING:");
cin >> flag;
}while(flag!=1 || flag!=0 || flag!=2);
}
return 0;
}

L'errore è il seguente:

Se inserisco flag uguale a 0,1 o 2 (valori che vanno bene) non esce dal ciclo!
come mai?
Grazie mille:asd::asd:

Ultima modifica effettuata da Faby_941 il 26/04/2018 alle 9:43


Fabiano_
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 445
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 9:55
Giovedì, 26/04/2018
Hai letto bene la condizione?
Se inserisci 2, che reputa diverso da 1, non esce giustamente. (Stessa cosa l' if , che è sempre vero)

Se vuoi che esca con uno di quei numeri, devi cambiarla.

Provaci tu, se l'|| non va bene....

Ultima modifica effettuata da Mikelius il 26/04/2018 alle 9:57


"Io ne ho viste cose che voi umani non potreste immaginarvi...."
PM Quote