Programación en Ada/Operadores
Clasificación
Ésta es la lista de operadores de Ada de menor a mayor precedencia.
| Clase | Nombre | Fórmula | Sintáxis Ada |
|---|---|---|---|
| Lógicos | Conjunción | Plantilla:Ada/Reservada | |
| Disyunción inclusiva | Plantilla:Ada/Reservada | ||
| Disyunción exclusiva | Plantilla:Ada/Reservada | ||
| Relacionales | Igualdad | = | |
| Desigualdad | /= | ||
| Menor que | < | ||
| Menor o igual que | <= | ||
| Mayor que | > | ||
| Mayor o igual que | >= | ||
| Aditivo unario | Identidad | + | |
| Negación | - | ||
| Aditivo binario | Suma | + | |
| Resta | - | ||
| Concatenación | Concatenación | & | |
| Multiplicativo | Multiplicación | * | |
| División | / | ||
| Módulo | Plantilla:Ada/Reservada | ||
| Resto | Plantilla:Ada/Reservada | ||
| De máxima precedencia | Exponenciación | ** | |
| Negación | Plantilla:Ada/Reservada | ||
| Valor absoluto | Plantilla:Ada/Reservada |
Propiedades
En todos los casos, excepto para la exponenciación, los dos operandos deben ser del mismo tipo.
Los operadores se pueden sobrecargar.
Comprobación de pertenencia (in, not in)
Además existe la comprobación de pertenencia (, Plantilla:Ada/Reservada; , Plantilla:Ada/Reservada Plantilla:Ada/Reservada) que técnicamente no es un operador y no se puede sobrecargar. Su precedencia es la misma que la de los operadores relacionales. Se puede utilizar con rangos o con subtipos.
Plantilla:Ada/-- Plantilla:Ada/Reservada X Plantilla:Ada/Reservada Positive Plantilla:Ada/Reservada Plantilla:Ada/-- ... Plantilla:Ada/Reservada X Plantilla:Ada/Reservada Plantilla:Ada/Reservada 4 .. 6 Plantilla:Ada/Reservada ... Plantilla:Ada/Reservada Plantilla:Ada/Reservada; Plantilla:Ada/Reservada Plantilla:Ada/Reservada;
Plantilla:Ada/Reservada Plantilla:Ada/Reservada Dia_Semana Plantilla:Ada/Reservada (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo); Plantilla:Ada/Reservada Dia_Laborable Plantilla:Ada/Reservada Dia_Semana Plantilla:Ada/Reservada Lunes .. Viernes; Hoy : Dia_Semana := Obtener_Dia; Plantilla:Ada/Reservada Plantilla:Ada/Reservada Hoy Plantilla:Ada/Reservada Dia_Laborable Plantilla:Ada/Reservada Plantilla:Ada/-- Ir_Al_Trabajo; Plantilla:Ada/Reservada Hoy Plantilla:Ada/Reservada Plantilla:Ada/Reservada Lunes .. Miercoles Plantilla:Ada/Reservada Pensar_En_El_Fin_De_Semana; Plantilla:Ada/Reservada Plantilla:Ada/Reservada; Plantilla:Ada/Reservada Plantilla:Ada/Reservada; Plantilla:Ada/Reservada;
Operadores lógicos de cortocircuito
Para los operadores lógicos existen versiones para minimizar las evaluaciones (short-circuit evaluation). Es decir, se evalúa primero el operando de la izquierda y después, sólo si es necesario para determinar el resultado, el de la derecha:
- Conjunción Plantilla:Ada/Reservada Plantilla:Ada/Reservada: no se evalúa la segunda expresión si la primera es falsa porque ya sabemos que el resultado será falso.
- Disyunción inclusiva Plantilla:Ada/Reservada Plantilla:Ada/Reservada: no se evalúa la segunda expresión si la primera es verdadera porque ya sabemos que el resultado será verdadero.
Plantilla:Ada/-- Plantilla:Ada/-- Plantilla:Ada/-- Plantilla:Ada/kw A /= 0 Plantilla:Ada/kw Plantilla:Ada/kw B / A > 3 Plantilla:Ada/kw Put_Line (Plantilla:Ada/"); Plantilla:Ada/kw Plantilla:Ada/kw;