Programación

1º DAM/DAW - Curso 2023-2024

User Tools

Site Tools


apuntes:estructuras_de_control

This is an old revision of the document!


Las estructuras de control

\part*{Las estructuras de control}

\section{Estructura if}

La estructura \verb if permite tomar una decision en base a una condición. Dicha condición puede ser simple (comparar dos expresiones) o bien compleja, pudiéndose comparar múltiples expresiones unidas por cualquier operador lógico. Si el resultado final de la condición es verdadero (la condición se cumple), se ejecutará el bloque de código asociado a la instrucción \verb if , y a continuación, el programa seguirá inmediatamente después. En caso contrario, no se ejecutará ese código y el programa seguirá inmediatamente después.

  \begin{lstlisting}[language=java]
  if (condicion) {
      sentencias;
  }
  \end{lstlisting}
  \begin{lstlisting}[language=java]
  if (x > 10) {
      System.out.println("x es mayor que 10");
  }
  \end{lstlisting}

\section{Estructura if/else}

En este caso la instrucción \verb if viene acompañada de un segundo bloque de instrucciones que se asocia al caso en que la condición de la instrucción no se cumpla. Ahora, cuando la condición asociada al caso \verb if no se cumpla, se ejecutará el bloque de código asociado al caso \verb else antes de continuar inmediatamente después.

  \begin{lstlisting}[language=java]
  if (condicion) {
      sentencias_if;
  }
  else {
      sentencias_else;
  }
  \end{lstlisting}
  \begin{lstlisting}[language=java]
  if (x == 10) {
      System.out.println("x vale 10");
  }
  else {
      System.out.println("x no vale 10");
  }
  \end{lstlisting}

\section{Estructura if/else if}

Este es el caso más completo de la instrucción \verb if . Realmente es posible evaluar tantas condiciones como se deseen y asociar un bloque de código al cumplimiento de cada una de esas condiciones, teniendo en cuenta que, por cada instrucción \verb if sólo se acabará ejecutando un sólo bloque de instrucciones. Se ejecutará siempre el bloque asociado a la condición que antes se cumpla (en orden de arriba a abajo) o el bloque asociado al caso \verb else si no se cumple ninguna condición (siempre que se haya incluido caso \verb else ). Asi, es posible que, aún incluyendo una sentencia \verb if , puede que nunca se ejecute ninguna sentencia.

  \begin{lstlisting}[language=java]
  if (condicion1) {
      sentencias_1;
  }
  else if (condicion2) {
      sentencias_2;
  }
  else if (condicion3) {
      sentencias_3;
  }
  . . .
  . . .
  else {
      sentencias_else;
  }
  \end{lstlisting}
  \begin{lstlisting}[language=java]
  if (x > 10) {
      System.out.println("x es mayor que 10");
  }
  else if (x < 10) {
      System.out.println("x es menor que 10");
  }
  else {
      System.out.println("x es igual a 10");
  }
  \end{lstlisting}

\section{Operador condicional}

Los operadores condicionales permiten evaluar varias expresiones como si se trataran de una sola condición

  \begin{itemize}
      \item \textbf{Operador AND} Representado por los caracteres \verb && , se utiliza para combinar varias expresiones y que éstas sean
      evaluadas como una sola condición verdadera cuando todas ellas lo sean. Si alguna de ellas es falsa, el resultado siempre será falso
      independientemente del valor de todas las demás
      \item \textbf{Operador OR} Representado por los caracteres \verb || , se utiliza para combinar varias expresiones y que éstas sean
      evaluadas como una sola condición verdadero simplemente con que una de ellas lo sea. Si todas ellas son falsas, el resultado de la
      condición compuesta será falso
      \item \textbf{Operador NOT} Representado por el caracter \verb ! , se utiliza para invertir el resultado de la expresión que queda a
      su derecha.
  \end{itemize}
  \begin{lstlisting}[language=java]
  if ((x > 10) && (x < 20)) {
      System.out.println("El valor de x está entre 10 y 20");
  }
  \end{lstlisting}
  \begin{lstlisting}[language=java]
  if ((x == 10) || (x == 20)) {
      System.out.println("El valor de x es 10 o 20");
  }
  \end{lstlisting}
  
  \begin{lstlisting}[language=java]
  if (!(x == 10)) {
      System.out.println("x es distinto que 10");
  }
  \end{lstlisting}

\section{Estructura switch}

La sentencia \verb switch permite tomar una decisión en base al valor de una variable. A cada posible valor se le asocia un bloque de sentencias que será ejecutado cuando la variable contenga dicho valor. Además, de forma similar a como ocurre con la sentencia \verb if , esta sentencia tiene un caso por defecto, en este caso se llama \verb default , cuyo bloque asociado se ejecutará en caso de que la variable no tenga ninguno de los valores recogidos en los casos \verb case .

  \begin{lstlisting}[language=java]
  switch(condicion) {
      case valor_1:
          sentencias_1;
          break;
      case valor_2:
          sentencias_2;
          break;
      case valor_3:
          sentencias_3;
          break;
      default:
          sentencia_default;
          break;
  }
  \end{lstlisting}
  \begin{lstlisting}[language=java]
  switch(color) {
      case "azul":
          System.out.println("El color es azul");
          break;
      case "rojo":
          System.out.println("El color es rojo");
          break;
      case "negro":
          System.out.println("El color es negro");
          break;
      default:
          System.out.println("No es ninguno de los colores seleccionados");
          break;
  }
  \end{lstlisting}

%\lstinputlisting{partes/varios/Persona.java}


© 2019 Santiago Faci

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