Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177

    [C++] Test uscita ciclo

    Perche' questo codice non esce mai dal ciclo?
    Dove mi sto perdendo?

    codice:
    char conferma;
      do
      {
        std::cout<<"\nVuoi veramente uscire?  s = si    n = no\n";
        std::cin>>conferma;
      }while(conferma != 's' || conferma != 'n');

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    C'è qualche conflitto nella logica di funzionamento di quella condizione.

    In generale, a prescindere dal linguaggio di programmazione, l'operatore OR logico (||) interrompe la verifica se la prima espressione risulta essere vera. Per cui non ci sarà bisogno di verificare la seconda espressione dal momento che il risultato sarà comunque vero.

    Esaminiamo quindi quella condizione.
    La prima espressione è conferma != 's'. In questo caso sarà chiaramente valutato il valore di conferma, se non è uguale ad 's' allora l'intera condizione è vera, per cui il ciclo continua.
    Supponiamo invece che conferma sia uguale ad 's', quindi sarà valutata la seconda espressione conferma != 'n'. Questa espressione risulterà ovviamente vera in questo caso, per cui il ciclo continua.

    Come puoi vedere, il ciclo continuerà comunque in qualsiasi caso.

    Dovrai quindi rivedere quella condizione. Sinceramente non ho capito però quando vuoi che si esca dal ciclo.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dovrai usare && al posto di ||
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    C'è qualche conflitto nella logica di funzionamento di quella condizione.
    Incredibile come ci si possa perdere in un niente...

    Quote Originariamente inviata da oregon Visualizza il messaggio
    Dovrai usare && al posto di ||
    Grazie...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da ing82 Visualizza il messaggio
    Incredibile come ci si possa perdere in un niente...
    In realtà studiando l' Algebra Booleana questi "niente" divengono concetti chiari ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da oregon Visualizza il messaggio
    In realtà studiando l' Algebra Booleana questi "niente" divengono concetti chiari ...
    Ringrazio nuovamente chi mi ha dato una mano, ma se avessi preso un angolino di pezzo di carta, avessi messo nero su bianco il ragionamento fatto da KillerWorm, che qui riporto...


    Quote Originariamente inviata da KillerWorm Visualizza il messaggio

    Esaminiamo quindi quella condizione.
    La prima espressione è conferma != 's'. In questo caso sarà chiaramente valutato il valore di conferma, se non è uguale ad 's' allora l'intera condizione è vera, per cui il ciclo continua.
    Supponiamo invece che conferma sia uguale ad 's', quindi sarà valutata la seconda espressione conferma != 'n'. Questa espressione risulterà ovviamente vera in questo caso, per cui il ciclo continua.

    Come puoi vedere, il ciclo continuerà comunque in qualsiasi caso.
    non avrei perso xxx ore (mi vergogno a mettere quanto tempo ho realmente perso in prove, riprove, modifiche, ecc...).

    Grazie ancora.

    P.S. : ma perche' l'emoticon 'Mannaggia li pescetti' non mi viene visualizzata? Grazie

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.