Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Operatori e Gestione del flusso di esecuzione
2
Obiettivi 1. Conoscere e saper utilizzare i vari operatori 2. Conoscere e saper utilizzare i costrutti di programmazione semplici 3. Conoscere e saper utilizzare i costrutti di programmazione avanzati
3
Operatori di base ( Ob. 1 ) Operatore di assegnazione: = Operatori aritmetici: + - * / % % è l’operatore modulo: 5 % 3 = 2; 10 % 2 = 0; 100 % 50 = 0
4
Operatori con assegnazione inclusa:
+= “i += 2” è equivalente a “i=i+2” -= “i -= 2” è equivalente a “i=i-2” *= “i *= 2” è equivalente a “i=i*-2” /= “i /= 2” è equivalente a “i=i/2” %= “i %= 2” è equivalente a “i=i%2”
5
Operatori (unari) di pre e post-incremento (e decremento) :
++ Sono espressioni equivalenti: i = i + 1 i += 1 i++ Post-incremento (= ha la priorità) ( x=5; y=x++; risulta y=5 e x=6) ++i Pre-incremento (prioritario rispetto a =) ( x=5; y=++x; risulta y=x=6) --
6
Operatori bitwise: eseguono operazioni direttamente sui bit ~ NOT (operatore unario) & AND (operatore binario) | OR ( “ “ ) ^ XOR ( “ “ ) << Shift a sinistra >> Shift a destra >>> Shift a destra senza segno &= AND e assegnazione |= OR e assegnazione ^= XOR e assegnazione <<= Shift a sinistra e assegnazione >>= Shift a destra e assegnazione
7
Esempi Operatori bitwise:
sapendo che la rappresentazione binaria di 1 è , avremo che ~1 varrà ovvero -2. byte a = 35; //rappresentazione binaria a = a >> 2; avremo che: a = 8 // rappresentazione binaria (Il numero dei bit da scorrere è rappresentato dall’operando a destra dell’operazione, in questo caso è 2) byte b = -8; //rappresentazione binaria b = b >> 1; avremo che: b = -4 //rappresentazione binaria
8
Operatori relazionali o di confronto :
== Uguale a Tutti i tipi != Diverso da Tutti i tipi > Maggiore Solo i tipi numerici < Minore Solo i tipi numerici >= Maggiore o uguale Solo i tipi numerici <= Minore o uguale Solo i tipi numerici
9
Attenzione alle Stringhe:
String a = "Java"; String b = "Java"; String c = new String("Java"); System.out.println(a==b); System.out.println(b==c); produrrà il seguente output: true false Infatti a e b punteranno esattamente allo stesso oggetto. Mentre nel caso di c, avendo utilizzato la parola chiave new, verrà creato un oggetto ex novo, anche se con lo stesso contenuto dei precedenti.
10
Ricordiamo che il giusto modo per confrontare due stringhe rimane l’utilizzo del metodo equals(). Infatti il seguente frammento di codice: System.out.println(a.equals(b)); System.out.println(b.equals(c)); produrrà il seguente output: true True
11
A tal proposito è bene ricordare che la classe String definisce un metodo chiamato intern(), che prova a recuperare proprio l’oggetto String dal pool di stringhe, utilizzando il confronto che fornisce il metodo equals(). Nel caso nel pool non esista la stringa desiderata, questa viene aggiunta, e viene restituito un reference ad essa. In pratica, date due stringhe t ed s: s.intern() == t.intern() è true se se solo se s.equals(t) vale true.
12
Operatori logico – booleani :
! NOT logico & AND logico | OR logico ^ XOR logico && Short circuit AND (False se la 1° è false) || Short circuit OR ( True se la 1° è true) &= AND e assegnazione |= OR e assegnazione ^= XOR e assegnazione
13
Concatenazione di stringhe con +
+ oltre che essere un operatore aritmetico, è anche un operatore per concatenare stringhe. Per esempio il seguente frammento di codice: String nome = "James "; String cognome = "Gosling"; String nomeCompleto = "Mr. " + nome + cognome;
14
Priorità degli operatori
Separatori . [] () ; , da sx a dx ~ ! (tipi di dati) * / % + - << >> >>> < > <= >= instanceof == !=
15
Da sx a dx & ^ | && || Da dx a sx ?: = *= /= %= += -= <<= >>= >>>= &= ^= |=
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.