Combinazione efficace di operatori (Visual Basic)

Le espressioni complesse possono contenere molti operatori diversi. Questa condizione è illustrata nell'esempio seguente.

x = (45 * (y + z)) ^ (2 / 85) * 5 + z

La creazione di espressioni complesse, ad esempio quella dell'esempio precedente, richiede una conoscenza approfondita delle regole di precedenza dell'operatore. Per altre informazioni, vedere Precedenza dell'operatore in Visual Basic.

Espressioni parentesi

Spesso si desidera che le operazioni procedano in un ordine diverso da quello determinato dalla precedenza dell'operatore. Si consideri l'esempio seguente.

x = z * y + 4

L'esempio precedente moltiplica z per y, quindi aggiunge il risultato a 4. Tuttavia, se si vuole aggiungere y e 4 prima di moltiplicare il risultato in base za , è possibile eseguire l'override della precedenza dell'operatore normale usando parentesi. Racchiudendo un'espressione tra parentesi, l'espressione deve essere valutata prima, indipendentemente dalla precedenza dell'operatore. Per forzare prima l'aggiunta dell'esempio precedente, è possibile riscriverla come nell'esempio seguente.

x = z * (y + 4)

L'esempio precedente aggiunge y e 4, quindi moltiplica tale somma per z.

Espressioni parentesi nidificate

È possibile annidare espressioni in più livelli di parentesi per eseguire l'override della precedenza ancora più avanti. Le espressioni più profondamente annidate nelle parentesi vengono valutate prima, seguite dalla successiva nidificata più profonda e così via fino al minimo annidato e infine le espressioni esterne alle parentesi. Questa condizione è illustrata nell'esempio seguente.

x = (z * 4) ^ (y * (z + 2))

Nell'esempio precedente viene z + 2 valutato prima di tutto, quindi le altre espressioni parentesi. L'exponentiazione, che normalmente ha una precedenza maggiore rispetto all'aggiunta o alla moltiplicazione, viene valutata l'ultima in questo esempio perché le altre espressioni sono racchiuse tra parentesi.

Vedi anche