Java - Operatori di base
Java fornisce una ricca serie di operatori per manipolare le variabili. Possiamo dividere tutti gli operatori Java nei seguenti gruppi:
- Operatori aritmetici
- Operatori relazionali
- Operatori bit per bit
- Operatori logici
- Operatori di assegnazione
- Operatori vari
Gli operatori aritmetici
Gli operatori aritmetici vengono utilizzati nelle espressioni matematiche nello stesso modo in cui vengono utilizzati in algebra. La tabella seguente elenca gli operatori aritmetici:
Supponiamo che la variabile intera A contenga 10 e la variabile B ne contenga 20, quindi -
Mostra esempi
Operatore | Descrizione | Esempio |
---|---|---|
+ (Aggiunta) | Aggiunge valori su entrambi i lati dell'operatore. | A + B darà 30 |
- (Sottrazione) | Sottrae l'operando di destra dall'operando di sinistra. | A - B darà -10 |
* (Moltiplicazione) | Moltiplica i valori su entrambi i lati dell'operatore. | A * B darà 200 |
/ (Divisione) | Divide l'operando di sinistra per l'operando di destra. | B / A darà 2 |
% (Modulo) | Divide l'operando di sinistra per l'operando di destra e restituisce il resto. | B% A darà 0 |
++ (incremento) | Aumenta il valore dell'operando di 1. | B ++ dà 21 |
- (Decremento) | Diminuisce il valore dell'operando di 1. | B-- dà 19 |
Gli operatori relazionali
Sono disponibili i seguenti operatori relazionali supportati dal linguaggio Java.
Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -
Mostra esempi
Operatore | Descrizione | Esempio |
---|---|---|
== (uguale a) | Controlla se i valori di due operandi sono uguali o meno, in caso affermativo la condizione diventa vera. | (A == B) non è vero. |
! = (non uguale a) | Controlla se i valori di due operandi sono uguali o meno, se i valori non sono uguali la condizione diventa vera. | (A! = B) è vero. |
> (maggiore di) | Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A> B) non è vero. |
<(minore di) | Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A <B) è vero. |
> = (maggiore o uguale a) | Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A> = B) non è vero. |
<= (minore o uguale a) | Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro, in caso affermativo la condizione diventa vera. | (A <= B) è vero. |
Gli operatori bit per bit
Java definisce diversi operatori bit per bit, che possono essere applicati ai tipi interi, long, int, short, char e byte.
L'operatore bit per bit lavora sui bit ed esegue operazioni bit per bit. Assumiamo se a = 60 eb = 13; ora in formato binario saranno i seguenti -
a = 0011 1100
b = 0000 1101
-----------------
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 0011
La tabella seguente elenca gli operatori bit per bit:
Supponiamo che la variabile intera A contenga 60 e la variabile B contenga 13, quindi -
Mostra esempi
Operatore | Descrizione | Esempio |
---|---|---|
& (bit a bit e) | L'operatore AND binario copia un po 'nel risultato se esiste in entrambi gli operandi. | (A e B) darà 12 che è 0000 1100 |
| (bit a bit o) | L'operatore OR binario copia un bit se esiste in uno degli operandi. | (A | B) darà 61 che è 0011 1101 |
^ (XOR bit per bit) | L'operatore XOR binario copia il bit se è impostato in un operando ma non in entrambi. | (A ^ B) darà 49 che è 0011 0001 |
~ (complimento bitwise) | Binary Ones Complement Operator è unario e ha l'effetto di "ribaltare" i bit. | (~ A) darà -61 che è 1100 0011 in forma di complemento a 2 a causa di un numero binario con segno. |
<< (spostamento a sinistra) | Operatore binario di spostamento sinistro. Il valore dell'operando sinistro viene spostato a sinistra del numero di bit specificato dall'operando destro. | Un << 2 darà 240 che è 1111 0000 |
>> (spostamento a destra) | Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro. | Un >> 2 darà 15 che è 1111 |
>>> (zero riempimento a destra) | Sposta l'operatore di riempimento zero a destra Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro e i valori spostati vengono riempiti con zeri. | Un >>> 2 darà 15 che è 0000 1111 |
Gli operatori logici
La tabella seguente elenca gli operatori logici:
Supponiamo che le variabili booleane A siano vere e la variabile B sia falsa, quindi -
Mostra esempi
Operatore | Descrizione | Esempio |
---|---|---|
&& (logico e) | Chiamato operatore AND logico. Se entrambi gli operandi sono diversi da zero, la condizione diventa vera. | (A && B) è falso |
|| (logico o) | Chiamato Operatore OR logico. Se uno dei due operandi è diverso da zero, la condizione diventa vera. | (A || B) è vero |
! (logico non) | Chiamato operatore NOT logico. Utilizzare per invertire lo stato logico del suo operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa. | ! (A && B) è vero |
Gli operatori di assegnazione
Di seguito sono riportati gli operatori di assegnazione supportati dal linguaggio Java:
Mostra esempi
Operatore | Descrizione | Esempio |
---|---|---|
= | Operatore di assegnazione semplice. Assegna i valori dagli operandi del lato destro all'operando del lato sinistro. | C = A + B assegnerà il valore di A + B a C |
+ = | Aggiungi operatore di assegnazione AND. Aggiunge l'operando destro all'operando sinistro e assegna il risultato all'operando sinistro. | C + = A è equivalente a C = C + A |
- = | Sottrai AND operatore di assegnazione. Sottrae l'operando destro dall'operando sinistro e assegna il risultato all'operando sinistro. | C - = A è equivalente a C = C - A |
* = | Moltiplica AND operatore di assegnazione. Moltiplica l'operando destro con l'operando sinistro e assegna il risultato all'operando sinistro. | C * = A è equivalente a C = C * A |
/ = | Divide AND operatore di assegnazione. Divide l'operando sinistro con l'operando destro e assegna il risultato all'operando sinistro. | C / = A è equivalente a C = C / A |
% = | Modulo AND operatore di assegnazione. Richiede il modulo utilizzando due operandi e assegna il risultato all'operando sinistro. | C% = A è equivalente a C = C% A |
<< = | Shift sinistro AND operatore di assegnazione. | C << = 2 è uguale a C = C << 2 |
>> = | Spostamento a destra e operatore di assegnazione. | C >> = 2 è uguale a C = C >> 2 |
& = | Operatore di assegnazione AND bit per bit. | C & = 2 è uguale a C = C & 2 |
^ = | OR esclusivo bit per bit e operatore di assegnazione. | C ^ = 2 è uguale a C = C ^ 2 |
| = | OR bit per bit inclusivo e operatore di assegnazione. | C | = 2 è uguale a C = C | 2 |
Operatori vari
Ci sono pochi altri operatori supportati da Java Language.
Operatore condizionale (?:)
L'operatore condizionale è noto anche come ternary operator. Questo operatore è costituito da tre operandi e viene utilizzato per valutare le espressioni booleane. L'obiettivo dell'operatore è decidere quale valore assegnare alla variabile. L'operatore è scritto come -
variable x = (expression) ? value if true : value if false
Di seguito è riportato un esempio:
Example
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
Questo produrrà il seguente risultato:
Output
Value of b is : 30
Value of b is : 20
instanceof Operator
Questo operatore viene utilizzato solo per le variabili di riferimento degli oggetti. L'operatore controlla se l'oggetto è di un tipo particolare (tipo di classe o tipo di interfaccia). L'operatore instanceof è scritto come -
( Object reference variable ) instanceof (class/interface type)
Se l'oggetto a cui fa riferimento la variabile sul lato sinistro dell'operatore supera il controllo IS-A per il tipo di classe / interfaccia sul lato destro, il risultato sarà vero. Di seguito è riportato un esempio:
Example
public class Test {
public static void main(String args[]) {
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
Questo produrrà il seguente risultato:
Output
true
Questo operatore restituirà comunque true, se l'oggetto da confrontare è l'assegnazione compatibile con il tipo a destra. Di seguito è riportato un altro esempio:
Example
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
Questo produrrà il seguente risultato:
Output
true
Precedenza degli operatori Java
La precedenza degli operatori determina il raggruppamento dei termini in un'espressione. Ciò influisce sul modo in cui viene valutata un'espressione. Alcuni operatori hanno la precedenza maggiore di altri; per esempio, l'operatore di moltiplicazione ha una precedenza maggiore dell'operatore di addizione -
Ad esempio, x = 7 + 3 * 2; qui x è assegnato 13, non 20 perché l'operatore * ha una precedenza maggiore di +, quindi viene prima moltiplicato per 3 * 2 e poi somma in 7.
Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in fondo. All'interno di un'espressione, verranno valutati per primi gli operatori con precedenza più alta.
Categoria | Operatore | Associatività |
---|---|---|
Postfix | espressione ++ espressione-- | Da sinistra a destra |
Unario | ++ espressione –-espressione + espressione –espressione ~! | Da destra a sinistra |
Moltiplicativo | * /% | Da sinistra a destra |
Additivo | + - | Da sinistra a destra |
Cambio | << >> >>> | Da sinistra a destra |
Relazionale | <> <=> = instanceof | Da sinistra a destra |
Uguaglianza | ==! = | Da sinistra a destra |
Bitwise AND | & | Da sinistra a destra |
Bitwise XOR | ^ | Da sinistra a destra |
OR bit per bit | | | Da sinistra a destra |
AND logico | && | Da sinistra a destra |
OR logico | || | Da sinistra a destra |
Condizionale | ?: | Da destra a sinistra |
Incarico | = + = - = * = / =% = ^ = | = << = >> = >>> = | Da destra a sinistra |
Cosa c'è dopo?
Il prossimo capitolo spiegherà il controllo del loop nella programmazione Java. Il capitolo descriverà vari tipi di loop e come questi loop possono essere utilizzati nello sviluppo di programmi Java e per quali scopi vengono utilizzati.