.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- Chiarimento operatori logici (http://www.dsy.it/forum/showthread.php?threadid=42605)


Posted by Strong on 20-01-2012 15:06:

Chiarimento operatori logici

Salve,
volevo chiedervi un chiarimento, in particolare è l'esercizio 2 dello scritto del 2 marzo 2011.
Esattamente non ho capito questa parte:

int x = 4;
int y = 3;
boolean b = (x>=(x>y++) ? x++ : y++);

sostituendo i valori nella condizione si ha:
4>=(4>3) [e y diventa 3]

ora, nella parentesi il risultato dovrebbe essere un boolean con risultato true, e ora mi chiede se 4>= di un true? sbaglio a ragionare? qualcuno me lo spiega? thanks!


Posted by Strong on 20-01-2012 15:07:

*modifica [e y diventa 4, scusate].


Posted by Strong on 20-01-2012 16:04:

Risolto da solo.
Le parentesi ingannano, equivale a dire boolean b = x>=x>y++ ? x++ : y++;
Quindi 4>=4>3 ? true :)


Posted by oksana213 on 27-01-2012 20:04:

Dato:
int x = 4;
int y = 3;
boolean b = (x>=(x>y++) ? x++ : y++);

Passo 1.
int x=4; int y=3;
(x>y++) ? x++ : y++, i.e. 4>3? SI, e incrementiamo x.

Passo 2.
int x=5; y=4 (y si è incrementato dopo la valutazione x>y++)
x>=(...)?, i.e.5>=5? SI.

Passo 3.
boolean b=TRUE.

Risultato finale:
int x = 5;
int y = 4;
boolean b = TRUE;


Posted by Strong on 28-01-2012 20:44:

Originally posted by oksana213
Dato:
int x = 4;
int y = 3;
boolean b = (x>=(x>y++) ? x++ : y++);

Passo 1.
int x=4; int y=3;
(x>y++) ? x++ : y++, i.e. 4>3? SI, e incrementiamo x.

Passo 2.
int x=5; y=4 (y si è incrementato dopo la valutazione x>y++)
x>=(...)?, i.e.5>=5? SI.

Passo 3.
boolean b=TRUE.

Risultato finale:
int x = 5;
int y = 4;
boolean b = TRUE;


Grazie ma avevo già risolto.


All times are GMT. The time now is 09:55.
Show all 5 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.