Las expresiones realizan acciones específicas, según un operador, con uno o dos operandos. Un operando puede ser una constante, una variable o el resultado de una función. Los operadores son aritméticos, lógicos y relacionales. Al igual que sucede en C, la funcionalidad de un operador puede variar según el tipo de datos de los operandos especificados en la expresión.
El operador unario negativo invierte el signo de una expresión, de positivo a negativo o viceversa. El efecto neto es el de multiplicar el número por -1. Ejemplo:
a = -10;
Los operadores de prefijo aumentan y reducen la variable antes de hacer eliminar la referencia al objeto, mientras que los operadores de postfijo aumentan o reducen la variable después de hacer referencia a la misma. Ejemplo:
A=1;
B = a++; // b será igual a 1, a será igual a 2;
A = 1;
B = ++a; // b será igual a 2, a será igual a 2;
A= 1;
B = a--; // b será igual a 1, a será igual a 0;
Símbolo | Operación | Ejemplo | Descripción |
---|---|---|---|
+ | Suma | a + b | Sumar los dos operandos |
- | Resta | a - b | Restar el segundo operando del primero |
* | Multiplicación | a * b | Multiplicar los dos operandos |
/ | División | a / b | Dividir el primer operando por el segundo |
** | Potencia | a ** b | Elevar el primer operando a la potencia del segundo operando |
% | Resto |
a % b |
Dividir el primer operando por el segundo y dar como resultado la parte restante |
Si una expresión contiene dos o más operadores con la misma precedencia, el operador de la izquierda se evalúa en primer lugar. Por ejemplo, 10 / 2 * 5 se evaluará como (10 / 2) y el resultado se multiplicará por 5.
Cuando se deba procesar primero una operación con menor precedencia, se deberá incluir entre paréntesis. Por ejemplo, 30 / 2 + 8. Esto se evalúa normalmente como 30 dividido entre 2 y luego se suma 8 al resultado. Si desea dividir por 2 + 8, se debe escribir del modo siguiente: 30 / (2 + 8).
Los paréntesis pueden aparecer anidados dentro de expresiones. Las expresiones entre paréntesis más internas se evalúan en primer lugar.
Símbolo | Operación | Ejemplo | Descripción |
---|---|---|---|
AND && | AND |
Expr1 $$ expr2 |
Verdadero si tanto expr1 como expr2 son verdaderas. |
OR || | OR |
Expr1 OR expr2 |
Verdadero si expr1 o expr2 son verdaderas. |
Símbolo | Operación | Ejemplo | Descripción |
---|---|---|---|
< | Menor que | a < b | Verdadero si a es menor que b. |
> | Mayor que | a GT b | Verdadero si a es mayor que b. |
== | Igual | a == b | Verdadero si a es igual a b. |
!= | No igual | a NE b | Verdadero si a no es igual a b. |
<= | Menor o igual que | a <= b | Verdadero si a es menor o igual que b. |
>= | Mayor o igual que | a GE b | Verdadero si a es mayor o igual que b. |
Las comparaciones deben realizarse sobre tipos de datos similares: cadena de caracteres con cadena de caracteres, números con números. Si los tipos de datos son distintos, se producirá un error en el momento de la ejecución.
Si cualquiera de los caracteres de una cadena de caracteres no coincide con el carácter correspondiente de la otra, la comparación se detiene y se considera que las cadenas de caracteres no son iguales. Las cadenas de caracteres distinguen entre mayúsculas y minúsculas. Ejemplos:
Str1 = "abcdefg";
Str2 = "abcdefg";
Str3 = "abcdef";
Str4 = "ABCDEFG";
If (str1 == str2)... da lugar a una condición igual/verdadero
If (str1 == str3).... Da lugar a una condición no igual a
porque str3 es más corto que str1
If (str1 == str4) ... Da lugar a una condición no igual a
porque las cadenas de caracteres contienen distintas mayúsculas y minúsculas;
Str1 = "abc";
Str2 = "def";
Str3 = str1 + str2; da lugar a "abcdef"