C # - Precedenza degli operatori
La precedenza degli operatori determina il raggruppamento dei termini in un'espressione. Ciò influisce sulla valutazione di un'espressione. Alcuni operatori hanno la precedenza maggiore di altri; ad 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 la prima valutazione ha luogo per 3 * 2 e quindi viene aggiunto 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, gli operatori con precedenza più alta vengono valutati per primi.
Categoria | Operatore | Associatività |
---|---|---|
Postfix | () [] ->. ++ - - | Da sinistra a destra |
Unario | + -! ~ ++ - - (tipo) * & sizeof | Da destra a sinistra |
Moltiplicativo | * /% | Da sinistra a destra |
Additivo | + - | Da sinistra a destra |
Cambio | << >> | Da sinistra a destra |
Relazionale | <<=>> = | 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 |
Virgola | , | Da sinistra a destra |
Esempio
using System;
namespace OperatorsAppl {
class Program {
static void Main(string[] args) {
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
Console.WriteLine("Value of (a + b) * c / d is : {0}", e);
e = ((a + b) * c) / d; // (30 * 15 ) / 5
Console.WriteLine("Value of ((a + b) * c) / d is : {0}", e);
e = (a + b) * (c / d); // (30) * (15/5) {0}", e);
e = a + (b * c) / d; // 20 + (150/5) {0}", e);
Console.ReadLine();
}
}
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90