Programación

1º DAM/DAW - Curso 2023-2024

User Tools

Site Tools


apuntes:operadores

This is an old revision of the document!


Los operadores

\part*{Los operadores}

\section{Los operadores unarios}

Los operadores unarios actúan sobre una sola variable:

\begin{itemize}

  \item \textbf{Operador ++} Puede ser utilizado como operador de preincremento o posincremento, dependiendo de si se coloca a la
  izquierda o derecha de la variable, respectivamente
  \begin{lstlisting}[language=java]
  int x = 10;
  System.out.println(++x);    // 11
  System.out.println(x++);    // 11
  System.out.println(x);      // 12
  \end{lstlisting}
  \item \textbf{Operador } \verb --  Al igual que ocurre con el anterior operador, puede ser utilizado como operador de predecremento
  posdecremento, dependiendo de si se coloca a la izquierda o derecha de la variable, respectivamente
  \begin{lstlisting}[language=java]
  int x = 10;
  System.out.println(--x);    // 9
  System.out.println(x--);    // 9
  System.out.println(x);      // 8
  \end{lstlisting}
  \item \textbf{Operador !} Permite lo que se conoce como "negar" el valor de la variable. Si la variable que lo acompaña es de tipo
  booleano, devolverá el valor contrario (\verb true  si la variable es \verb false , y viceversa)
  \begin{lstlisting}[language=java]
  boolean terminado = false;
  System.out.println(!terminado); // true
  \end{lstlisting}
  \item \textbf{Operador -} Se utiliza para indicar que un valor numérico es negativo (ya sea un valor literal o de una variable o
  constante)
  
  \begin{lstlisting}[language=java]
  int x = -100;
  int y = 500;
  int z = -y;
  System.out.println(x);  // -100
  System.out.println(y);  // 500
  System.out.println(z);  // -500
  \end{lstlisting}
  
  \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}

Los operadores aritméticos permiten realizar operaciones aritméticos entre dos o más variable o expresiones:

\begin{itemize}

  \item \textbf{Operador suma +} Permite sumar dos expresiones
  \begin{lstlisting}[language=java]
  int valor = 3 + 3 + otraVariable;
  \end{lstlisting}
  \item \textbf{Operador resta -} Permite restar dos expresiones
  
  \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}

\section{Los operadores de asignació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 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.

\begin{itemize}

  \item \textbf{Operador de asignación =} Asigna al operando de la izquierda el valor del resultado de la expresión de la derecha
  
  \begin{lstlisting}[language=java]
  int x = 2;
  System.out.println(x);  // 2
  int y;
  y = x * 10;
  System.out.println(y);  // 20
  \end{lstlisting}
  
  \item \textbf{Operador de asignación suma +=} Incrementa 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 += 2;
  System.out.println(x);      // 12
  \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);      // 9
  x -= 10 + 2;
  System.out.println(x);      // -3
  \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);      // 50;
  \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);      // 10
  \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;
  x %= 3 - 1;
  System.out.println(x);      // 1
  \end{lstlisting}

\end{itemize}

\section{Los operadores de comparación}

El resultado una expresión de comparación siempre es booleano, podrá cumplirse (valor \verb true ) o no (valor \verb false ).

\begin{itemize}

  \item \textbf{Operador igual que ==} Permite comparar dos valores/expresiones 
  
  \begin{lstlisting}[language=java]
  System.out.println(10 == 3);    // false
  int x = 3;
  int y = 3;
  System.out.println(x == y);    // true
  \end{lstlisting}
  
  \item \textbf{Operador distinto que !=} 
  
  \begin{lstlisting}[language=java]
  System.out.println(10 != 3);    // true
  int x = 3;
  int y = 3;
  System.out.println(x != y);    // false
  \end{lstlisting}
  
  \item \textbf{Operador mayor que $>$} 
  
  \begin{lstlisting}[language=java]
  System.out.println(10 > 3);    // true
  \end{lstlisting}
  
  \item \textbf{Operador mayor o igual que $>$=}
  
  \begin{lstlisting}[language=java]
  System.out.println(3 >= 3);    // true
  \end{lstlisting}
  
  \item \textbf{Operador menor que $<$} 
  
  \begin{lstlisting}[language=java]
  System.out.println(10 < 3);    // false
  \end{lstlisting}
  
  \item \textbf{Operador menor o igual que $<$=}
  
  \begin{lstlisting}[language=java]
  System.out.println(2 <= 3);    // true
  \end{lstlisting}

\end{itemize}

\section{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 números, pero al usarse con cadenas de texto funciona como operador de concatenación.

  \begin{lstlisting}[language=java]
  String unaCadena = "Esto es ";
  String otraCadena = "una cadena";
  String cadena = unaCadena + otraCadena;
  System.out.println(cadena);     // Esto es una cadena
  \end{lstlisting}

\section{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. Pongamos algún ejemplo:

\begin{lstlisting}[language=java]

  int x = 3 + 2 * 5
  System.out.println("Cuanto vale 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, se pueden hacer uso de los paréntesis 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, las operaciones multiplicación y división (el módulo también) tienen precedencia frente a la suma y la resta.

Además, los operadores unarios tienen siempre precedencia sobre el resto de operadores.

\begin{lstlisting}[language=java]

  int x = (3 + 2) * 5
  System.out.println("Y ahora cuanto vale x?");
  System.out.println(x);

\end{lstlisting}

\begin{lstlisting}[language=java]

  int x = (3 + 2) * 5 + (3 * 2 * (3 + 2))
  System.out.println("Y ahora?");
  System.out.println(x);

\end{lstlisting}


© 2019 Santiago Faci

apuntes/operadores.1550182172.txt.gz · Last modified: 2019/02/14 22:09 by Santiago Faci