domanda easy valutazione espressioni Clicca QUI per vedere il messaggio nel forum |
zenerh |
l'ho preso dal II compitino 19/12/2008 dal sito di mereghetti.
esercizio n°2
Assumete che x e y siano variabili int e che il loro valore prima delle espressioni booleane sia rispettivamente 2 e 3.dire quale sarà il valore di verità delle espressioni e quale sarà il contenutro delle variabili x e y dopo la valutazione delle espressioni
2°espressione :
( (x = x*x) < (y = x) ) && (x > ++y)
a me viene Falsa con x=4 e y=5
la soluzione del compito però è False x=4 e y=4
riuscite a spiegarmi perché y=4?
grazie ;) |
il_gege |
Beh, in teoria, visto che l'&& è esclusivo, visto che la prima condizione è falsa, la seconda non viene verificata, quindi y non viene incrementato. |
zenerh |
ahhhh ecco spiegata la famosa lazy evaluation.. ;)
quindi per capire meglio..
se gli operatori che utilizzano questa valutazione "pigra" sono solo && e || posso dedurre correttamente che le UNICHE espressioni in cui va tenuta in considerazione sono 2:
- x && y ---> sse x è falsa (il risultato è cmq falso)
- x || y ---> sse x è vera (il risultato è cmq vero)
giusto?o mi sfugge qualcosa?
grazie! |
|
|
|