PDA

View Full Version : [C++]Chiarimento operatore bool


carugo
17-11-2014, 14:21
Ciao a tutti, studiando il seguente codice:
#include <cstdlib>
#include <iostream>

using namespace std;

bool corretta(int,int);

void indovinaNumero()
{
int numero, indovina;
char risposta;

do
{
numero = 1 + rand() % 1000;
cout <<"Ho pensato ha un numero da 1 a 1000\n"
<<"Prova un po' a indovinarlo\n"
<<"Digita il tuo primo tentativo: ";
cin >>indovina;

while(!corretta (indovina, numero))
cin >>indovina;

cout <<"Ottimo hai indovinato!!!!\n"
<<"Ti piacerebbe giocare ancora? (SI/NO)";
cin >>risposta;
}
while(risposta == 's');
}


bool corretta (int i, int n)
{
if(i == n)
return true;

if(i < n)
cout <<"Troppo basso riprova ancora!!\n";
else
cout <<"Troppo alto riprova ancora!!\n";

return false;

}


int main(int argc, char *argv[])
{
srand (time(0));
indovinaNumero();




system("PAUSE");
return EXIT_SUCCESS;
}


Nel codice c'è un while dove la condizione è la funzione "corretta"di tipo bool è davanti c'è l 'operatore not(!), pur conoscendo l 'operatore not non mi è chiaro bene il suo utilizzo in questo modo davanti alla funzione!

TNX a tutti per le risposte

pabloski
17-11-2014, 15:40
Va interpretata così


while(corretta (indovina, numero) == false)

carugo
17-11-2014, 18:53
ok grazie ;)

vendettaaaaa
17-11-2014, 22:09
Il not nega un'espressione di valore booleano (o convertibile a bool) che lo segue. Dato l'ordine di precedenza di questo operatore rispetto alle chiamate a funzione, viene prima valutata la funzione, che restituisce un bool, e poi si applica il not a questo risultato.