Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Fondamenti di architettura e programmazione
 
Chiarimento operatori logici
Clicca QUI per vedere il messaggio nel forum
Strong
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!

Strong
*modifica [e y diventa 4, scusate].

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

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;

Strong
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.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate