Uscire da un doppio do while

di il
1 risposte

Uscire da un doppio do while

Sto scrivendo questa funzione, dove viene chiesto all'utente di scegliere il modo di effettuare la visita (digitando 1,2 o 3).
L'utente può scegliere visite diverse fino a quando non digita 0, in questo modo esce dalla visita.

   printf("\nDigita 1 se vuoi visitare l'albero in ordine anticipato\n");
   printf("Digita 2 se vuoi visitare l'albero in ordine anticipato\n");
   printf("Digita 3 se vuoi visitare l'albero in ordine anticipato\n");
   do
   {
      do
      {	      
         printf("In che modo vuoi effettuare la visita? (Digita 0 se vuoi uscire dalla visita)----> ");
         esito_input_visita = scanf("%d",&ordine_visita);
         if ((esito_input_visita != 1) || (ordine_visita < 0 || ordine_visita > 3))
            printf("Valore non accettabile !!! ");      
         while (getchar() != '\n');
      }
      while ((esito_input_visita != 1) || (ordine_visita < 0 || ordine_visita > 3));
      
  
      if (ordine_visita == 1)
        visita_albero_bin_ant(radice);
      if (ordine_visita == 2)
        visita_albero_bin_simm(radice);
      if (ordine_visita == 3)
        visita_albero_bin_post(radice);

   }
   while (ordine_visita > 0 || ordine_visita <= 3);
   
   printf("\nSei uscito dalla visita!\n");

Solo che digitando 0 non succede nulla e continua a chiedere quale visita voglio effettuare. Qual è l'errore?

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte