Qual è l'ordine di precedenza degli operatori in Visual Basic 6.0?

StackOverflow https://stackoverflow.com/questions/55206

  •  09-06-2019
  •  | 
  •  

Domanda

Qual è l'ordine di precedenza degli operatori in Visual Basic 6.0 (VB6)?

In particolare per gli operatori logici.

È stato utile?

Soluzione

Ordine di precedenza delle operazioni aritmetiche

  1. ^
  2. - (negazione unaria)
  3. *, /
  4. \
  5. Mod
  6. +, - (addizione/sottrazione binaria)
  7. &

Ordine di precedenza delle operazioni di confronto

  1. =
  2. <>
  3. <
  4. >
  5. <=
  6. >=
  7. Like, Is

Ordine di precedenza delle operazioni logiche

  1. Not
  2. And
  3. Or
  4. Xor
  5. Eqv
  6. Imp

Fonte: Sams Insegna da solo Visual Basic 6 in 24 ore - Appendice A:Precedenza dell'operatore

Altri suggerimenti

Dipende se sei nel debugger o meno. Veramente. Beh, più o meno.

Le parentesi vengono prima, ovviamente.Quindi aritmatetico (+,-,*,/, ecc.).Quindi confronti (>, <, =, ecc.).Poi gli operatori logici.Il trucco è che l'ordine di esecuzione all'interno di un dato livello di precedenza non è definito.Data la seguente espressione:

If A < B And B < C Then

ti è garantito il < gli operatori di disuguaglianza verranno entrambi valutati prima di quello logico And confronto.Ma non è garantito quale confronto di disuguaglianza verrà eseguito per primo.

IIRC, il debugger viene eseguito da sinistra a destra, ma l'applicazione compilata viene eseguita da destra a sinistra. Potrei averli al contrario (è passato molto tempo), ma l'importante è che siano diversi.La precedenza effettiva non cambia, ma l'ordine di esecuzione potrebbe.

Usa le parentesi


MODIFICARE:Questo è il mio consiglio per il nuovo codice!Ma Oscar sta leggendo il codice di qualcun altro, quindi deve capirlo in qualche modo.Suggerisco l'argomento del manuale VB6 Precedenza dell'operatore.Sfortunatamente questo argomento non sembra essere nel Manuale VB6 in linea MSDN, quindi incollerò qui le informazioni sull'operatore logico.Se hai installato la guida VB6 (la libreria MSDN) la avrai sul tuo computer.

Gli operatori logici vengono valutati nel seguente ordine di precedenza:

Not   
And   
Or   
Xor   
Eqv   
Imp   

L'argomento spiega inoltre la precedenza per gli operatori di confronto e aritmetici.

Suggerirei, una volta individuata la precedenza, di inserirla tra parentesi a meno che non ci sia qualche buon motivo per non modificare il codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top