apuntes:operadores
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
apuntes:operadores [2019/02/14 22:09] – Santiago Faci | apuntes:operadores [2023/06/04 11:20] (current) – [Operador condicional] Santiago Faci | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Los operadores ====== | ====== Los operadores ====== | ||
- | \part*{Los operadores} | + | ===== Los operadores unarios |
- | + | ||
- | \section{Los operadores unarios} | + | |
Los operadores unarios actúan sobre una sola variable: | Los operadores unarios actúan sobre una sola variable: | ||
- | \begin{itemize} | + | * Operador |
- | \item \textbf{Operador ++} Puede ser utilizado como operador de preincremento o posincremento, | + | |
- | | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | int x = 10; | + | int x = 10; |
- | System.out.println(++x); | + | System.out.println(++x); |
- | System.out.println(x++); | + | System.out.println(x++); |
- | System.out.println(x); | + | System.out.println(x); |
- | | + | </ |
- | \item \textbf{Operador | + | * Operador |
- | | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | int x = 10; | + | int x = 10; |
- | System.out.println(--x); | + | System.out.println(--x); |
- | System.out.println(x--); | + | System.out.println(x--); |
- | System.out.println(x); | + | System.out.println(x); |
- | | + | </ |
- | \item \textbf{Operador !} Permite lo que se conoce como " | + | * Operador |
- | | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | boolean terminado = false; | + | boolean terminado = false; |
- | System.out.println(!terminado); | + | System.out.println(!terminado); |
- | | + | </ |
- | \item \textbf{Operador -} Se utiliza para indicar que un valor numérico es negativo (ya sea un valor literal o de una variable o | + | * Operador |
- | | + | |
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | int x = -100; | + | int x = -100; |
- | int y = 500; | + | int y = 500; |
- | int z = -y; | + | int z = -y; |
- | System.out.println(x); | + | System.out.println(x); |
- | System.out.println(y); | + | System.out.println(y); |
- | System.out.println(z); | + | System.out.println(z); |
- | | + | </ |
- | + | ||
- | \item \textbf{Operador +}: El operador \verb + se utiliza para indicar que un número es positivo. No es habitual usarlo puesto que la | + | |
- | ausencia del mismo indica lo mismo. | + | |
- | + | ||
- | \end{itemize} | + | |
- | \section{Los operadores aritméticos} | + | * Operador '' |
+ | ===== Los operadores aritméticos | ||
Los operadores aritméticos permiten realizar operaciones aritméticos entre dos o más variable o expresiones: | Los operadores aritméticos permiten realizar operaciones aritméticos entre dos o más variable o expresiones: | ||
- | \begin{itemize} | + | * Operador suma '' |
- | \item \textbf{Operador suma +} Permite sumar dos expresiones | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | int valor = 3 + 3 + otraVariable; | + | int valor = 3 + 3 + otraVariable; |
- | | + | </ |
- | \item \textbf{Operador resta -} Permite restar dos expresiones | + | * Operador resta '' |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int valor = 3 - otraVariable; | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador multiplicación *} Permite multiplicar dos expresiones | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | float peso = miPeso * 10f; | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador división /} Permite dividir dos expresiones | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | double distancia = 100.23 / 4; | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador módulo \%} Permite obtener el módulo entre dos expresiones | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int modulo = 2 % 1; | + | |
- | \end{lstlisting} | + | |
- | \end{itemize} | + | <code java> |
+ | int valor = 3 - otraVariable; | ||
+ | </ | ||
- | \section{Los operadores de asignación} | + | * Operador multiplicación '' |
- | Los operadores de asignación permite asignar el resultado de una operación o valor a una variable, o que dicho valor sea utilizado como | + | <code java> |
- | operando de otra operación o expresión. Además, existen algunos operadores que combinan operaciones aritméticas y permiten asignar al mismo | + | float peso = miPeso * 10f; |
- | tiempo el resultado de dicha operación. | + | </ |
- | \begin{itemize} | + | * Operador división ''/'' |
- | \item \textbf{Operador de asignación =} Asigna al operando de la izquierda el valor del resultado de la expresión de la derecha | + | |
+ | <code java> | ||
+ | double distancia = 100.23 / 4; | ||
+ | </ | ||
+ | |||
+ | * Operador | ||
+ | |||
+ | <code java> | ||
+ | int modulo = 2 % 1; | ||
+ | </ | ||
+ | |||
+ | ===== Los operadores | ||
+ | |||
+ | Los operadores de asignación permite asignar el resultado de una operación o valor a una variable, o que dicho valor sea utilizado como operando de otra operación o expresión. Además, existen algunos operadores que combinan operaciones aritméticas y permiten asignar al mismo tiempo el resultado de dicha operación. | ||
+ | |||
+ | * Operador de asignación '' | ||
+ | |||
+ | <code java> | ||
+ | int x = 2; | ||
+ | System.out.println(x); | ||
+ | int y; | ||
+ | y = x * 10; | ||
+ | System.out.println(y); | ||
+ | </ | ||
+ | |||
+ | * Operador de asignación suma '' | ||
+ | |||
+ | <code java> | ||
+ | int x = 10; | ||
+ | x += 2; | ||
+ | System.out.println(x); | ||
+ | </ | ||
+ | |||
+ | * Operador de asignación resta '' | ||
+ | |||
+ | <code java> | ||
+ | int x = 10; | ||
+ | x -= 1; | ||
+ | System.out.println(x); | ||
+ | x -= 10 + 2; | ||
+ | System.out.println(x); | ||
+ | </ | ||
+ | |||
+ | * Operador de asignación multiplicación '' | ||
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | int x = 2; | + | int x = 10; |
- | System.out.println(x); | + | x *= 2 + 3; |
- | int y; | + | System.out.println(x); |
- | y = x * 10; | + | </ |
- | | + | |
- | \end{lstlisting} | + | |
| | ||
- | \item \textbf{Operador de asignación | + | <code java> |
- | | + | int x = 100; |
+ | x /= 8 + 2; | ||
+ | System.out.println(x); | ||
+ | </ | ||
+ | |||
+ | * Operador de asignación | ||
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | int x = 10; | + | int x = 9; |
- | x += 2; | + | x %= 3 - 1; |
- | System.out.println(x); | + | System.out.println(x); |
- | \end{lstlisting} | + | </ |
- | + | ||
- | \item \textbf{Operador de asignación resta -=} Decrementa la variable del lado izquierdo el valor de la expresión | + | |
- | del lado derecho, y le asigna el resultado | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int x = 10; | + | |
- | x -= 1; | + | |
- | System.out.println(x); | + | |
- | x -= 10 + 2; | + | |
- | | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador de asignación multiplicación *=} Multiplica el valor de la variable del lado izquierdo por el valor de la | + | |
- | expresión del lado derecho, y le asigna el resultado | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int x = 10; | + | |
- | x *= 2 + 3; | + | |
- | System.out.println(x); | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador de asignación división /=} Divide el valor de la variable del lado izquierdo por el valor de la expresión del | + | |
- | lado derecho, y le asigna el resultado | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int x = 100; | + | |
- | x /= 8 + 2; | + | |
- | System.out.println(x); | + | |
- | \end{lstlisting} | + | |
- | + | ||
- | \item \textbf{Operador de asignación módulo \%=} Calcula el módulo de la variable con la expresión del lado derecho, y le asigna el | + | |
- | resultado | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | int x = 9; | + | |
- | | + | |
- | System.out.println(x); | + | |
- | | + | |
- | \end{itemize} | + | < |
+ | {{ arithmetic-assignment-operators.png }} | ||
+ | < | ||
- | \section{Los operadores de comparación} | + | ===== Los operadores de comparación |
- | El resultado una expresión de comparación siempre es booleano, podrá cumplirse (valor | + | El resultado una expresión de comparación siempre es booleano, podrá cumplirse (valor |
- | \begin{itemize} | + | * Operador igual que '' |
- | \item \textbf{Operador igual que ==} Permite comparar dos valores/ | + | |
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | System.out.println(10 == 3); // false | + | System.out.println(10 == 3); // false |
- | int x = 3; | + | int x = 3; |
- | int y = 3; | + | int y = 3; |
- | System.out.println(x == y); // true | + | System.out.println(x == y); // true |
- | | + | </ |
+ | |||
+ | * Operador distinto que '' | ||
| | ||
- | \item \textbf{Operador distinto que !=} | + | <code java> |
+ | System.out.println(10 | ||
+ | int x = 3; | ||
+ | int y = 3; | ||
+ | System.out.println(x != y); // false | ||
+ | </ | ||
+ | |||
+ | * Operador mayor que ''>'' | ||
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | System.out.println(10 | + | System.out.println(10 |
- | int x = 3; | + | </ |
- | int y = 3; | + | |
- | | + | * Operador mayor o igual que ''> |
- | \end{lstlisting} | + | |
| | ||
- | \item \textbf{Operador mayor que $>$} | + | < |
- | + | System.out.println(3 >= 3); // true | |
- | \begin{lstlisting}[language=java] | + | </code> |
- | System.out.println(10 | + | |
- | | + | |
- | + | ||
- | \item \textbf{Operador mayor o igual que $>$=} | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | | + | |
- | | + | |
- | + | ||
- | \item \textbf{Operador menor que $<$} | + | |
- | + | ||
- | \begin{lstlisting}[language=java] | + | |
- | System.out.println(10 < 3); | + | |
- | | + | |
- | + | ||
- | \item \textbf{Operador menor o igual que $<$=} | + | |
| | ||
- | \begin{lstlisting}[language=java] | + | < |
- | System.out.println(2 <= 3); // true | + | System.out.println(10 < 3); // false |
- | | + | </ |
- | \end{itemize} | + | |
- | \section{El operador de concatenación} | + | * Operador menor o igual que ''< |
+ | |||
+ | <code java> | ||
+ | System.out.println(2 <= 3); // true | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | {{ comparison-operators.png }} | ||
+ | < | ||
+ | |||
+ | ===== El operador de concatenación | ||
| | ||
- | El operador de concatenación permite añadir a una cadena de texto el contenido de otra. En Java se utiliza el mismo operador que para sumar | + | El operador de concatenación permite añadir a una cadena de texto el contenido de otra. En Java se utiliza el mismo operador que para sumar números, pero al usarse con cadenas de texto funciona como operador de concatenación. |
- | números, pero al usarse con cadenas de texto funciona como operador de concatenación. | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | String unaCadena = "Esto es "; | + | String unaCadena = "Esto es "; |
- | String otraCadena = "una cadena"; | + | String otraCadena = "una cadena"; |
- | String cadena = unaCadena + otraCadena; | + | String cadena = unaCadena + otraCadena; |
- | System.out.println(cadena); | + | System.out.println(cadena); |
- | | + | </ |
- | \section{Orden de evaluación de los operadores} | + | ===== Orden de evaluación de los operadores |
- | Es importante tener en cuenta el orden de evaluación de los operadores ya que, en algunos casos, definen el resultado de la operación. | + | Es importante tener en cuenta el orden de evaluación de los operadores ya que, en algunos casos, definen el resultado de la operación. Pongamos algún ejemplo: |
- | Pongamos algún ejemplo: | + | |
- | \begin{lstlisting}[language=java] | + | < |
- | int x = 3 + 2 * 5 | + | int x = 3 + 2 * 5 |
- | System.out.println(" | + | System.out.println(" |
- | System.out.println(x); | + | System.out.println(x); |
- | \end{lstlisting} | + | </ |
- | Si se quiere alterar la precedencia de algunos operadores o el orden de evaluación de las expresiones, | + | Si se quiere alterar la precedencia de algunos operadores o el orden de evaluación de las expresiones, |
- | para agrupar expresiones que queremos que se evaluen antes que otras. Hay que tener en cuenta que Java siempre evaluará primero las | + | |
- | expresiones más internas. Pero, en aquellas expresiones en igualdad de condiciones, | + | |
- | también) tienen precedencia frente a la suma y la resta. | + | |
Además, los operadores unarios tienen siempre precedencia sobre el resto de operadores. | Además, los operadores unarios tienen siempre precedencia sobre el resto de operadores. | ||
- | \begin{lstlisting}[language=java] | + | < |
- | int x = (3 + 2) * 5 | + | int x = (3 + 2) * 5 |
- | System.out.println(" | + | System.out.println(" |
- | System.out.println(x); | + | System.out.println(x); |
- | \end{lstlisting} | + | </ |
+ | |||
+ | <code java> | ||
+ | int x = (3 + 2) * 5 + (3 * 2 * (3 + 2)) | ||
+ | System.out.println(" | ||
+ | System.out.println(x); | ||
+ | </ | ||
+ | |||
+ | ===== Operadores pre/pos incremento ===== | ||
+ | |||
+ | < | ||
+ | {{ pre-pos-operators.png | ||
+ | < | ||
+ | |||
+ | ===== Operadores combinados ===== | ||
+ | |||
+ | < | ||
+ | {{ compound-operators.png }} | ||
+ | < | ||
+ | |||
+ | ===== Operadores lógicos ===== | ||
+ | |||
+ | < | ||
+ | {{ logical-operators.png }} | ||
+ | < | ||
+ | |||
+ | ===== Operador condicional ===== | ||
+ | |||
+ | Es un operator ternario que permite asignar un valor u otro a una variable en función de que se cumpla o no una condición. Es una forma reducida de utilizar una sentencia '' | ||
+ | |||
+ | La síntaxis del operador es: | ||
+ | |||
+ | <code java> | ||
+ | resultado = condicion ? valorSiVerdadero: | ||
+ | </ | ||
+ | |||
+ | Veamos un par de ejemplos: | ||
+ | |||
+ | En este caso se asignará un valor a la cadena de texto dependiendo de si el número es par o impar: | ||
+ | <code java> | ||
+ | int numero = 10; | ||
+ | String cadena = 10 % 2 == 0 ? "Es número par" : "Es número impar"; | ||
+ | </ | ||
- | \begin{lstlisting}[language=java] | + | Y en este otro ejemplo, se parsea la cadena de forma segura |
- | int x = (3 + 2) * 5 + (3 * 2 * (3 + 2)) | + | |
- | System.out.println(" | + | |
- | System.out.println(x); | + | |
- | \end{lstlisting} | + | |
+ | <code java> | ||
+ | String valor = " | ||
+ | int cantidad = valor.equals("" | ||
+ | </ | ||
---- | ---- | ||
- | (c) 2019 Santiago Faci | + | (c) 2021-{{date> |
apuntes/operadores.1550182172.txt.gz · Last modified: 2019/02/14 22:09 by Santiago Faci