SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
60                                                                       A. García-Beltrán y J.M. Arranz




5. Sentencias selectivas o condicionales

        Objetivos:
          a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y
               switch)
          b) Interpretar el resultado de una secuencia de sentencias condicionales combinadas
               o no
          c) Codificar una tarea sencilla convenientemente especificada, utilizando la
               secuencia y combinación de sentencias condicionales


5.1. Sentencias de control del flujo de un programa
        Cuando se escribe un programa, se introduce la secuencia de sentencias dentro de un archivo.
Sin sentencias de control del flujo, el intérprete ejecuta las sentencias conforme aparecen en el
programa de principio a fin. Las sentencias de control de flujo se emplean en los programas para
ejecutar sentencias condicionalmente, repetir un conjunto de sentencias o, en general, cambiar el
flujo secuencial de ejecución. Las sentencias selectivas o condicionales se verán en este capítulo y las
sentencias repetitivas en el siguiente.

5.2. Sentencia if-else
        Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control evalúa la
condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la sentencia o sentencias (1)
que se encuentra a continuacion. En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta
existe). La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes
sentencias.

Sintaxis:

if (expresionLogica) {
  sentencia_1;
  }

o bien (con dos ramas):

if (expresionLogica) {
      sentencia_1;
    }
   else {
      sentencia_2;
    }

        La expresionLogica debe ir entre paréntesis. Las llaves sólo son obligatorias si las sentencias
(1) ó (2) son compuestas (las llaves sirven para agrupar varias sentencias simples).

        La parte else y la sentencia posterior entre llaves no son obligatorias. En este caso quedaría una
sentencia selectiva con una rama (Figura 5.1).
 Programación orientada a objetos con Java                                                                  61




   Figura 5.1. Flujograma de la sentencia if. Con una rama (a la izquierda) y con dos ramas (a la derecha)
       Un ejemplo muy sencillo que muestra este tipo de sentencia es el siguiente:

// Codigo autoexplicativo
if (a>b) {
   System.out.println(”a es mayor que b");
   }
   else {
   System.out.println(”a no es mayor que b");
   }


Ejemplo de programa completo:
/**
 * cuadrado: Ejemplo de sentencia if
 * Muestra el cuadrado de un valor entero introducido como parametro
 * A. Garcia-Beltran, 16 de marzo de 2004
 */

public class Cuadrado {
   public static void main (String [] args) {
   int valor;
   if (args.length == 0)
      System.out.println("Por favor, introduce un argumento entero");
   else {
      valor = Integer.parseInt(args[0]);
      System.out.println("El cuadrado es " + valor*valor);
      }
   System.out.println("Hasta pronto");
   }
}

Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla:

$>java Cuadrado
Por favor, introduce un argumento entero
Hasta pronto

$>java Cuadrado 4
El cuadrado es 16
Hasta pronto

        Todo programa o aplicación independiente de Java debe declarar un método principal con la
siguiente cabecera:
62                                                                    A. García-Beltrán y J.M. Arranz




     public static void main (String [] args)

       Esta declaración indica que al método main se le transfiere un vector de cadenas, args,
(array de strings). Este vector contiene todos los parámetros o argumentos indicados en la línea de
comandos al realizar la ejecución del intérprete de Java seguido del nombre de la clase a ejecutar. El
primer elemento de este vector es args[0]. El tamaño del vector podría determinarse añadiendo
.length a su identificador. Como el índice del primer elemento del vector es 0, si el tamaño del
vector es n, entonces el último elemento del vector tiene índice n-1. En el ejemplo anterior de
ejecución del programa, args[0] vale "4".

      Las sentencias if–else pueden ir anidadas unas dentro de otras en el código fuente del
programa. Por ejemplo:

/**
 * esPar: Ejemplo de sentencias if anidadas
 * Indica si el valor entero introducido como parametro es par o no
 * A. Garcia-Beltran, 29 de octubre de 2004
 */

public class EsPar {
   public static void main (String [] args) {
      int valor;
      if (args.length == 0)
         System.out.println("Por favor, introduce un argumento entero");
      else {
         valor = Integer.parseInt(args[0]);
         if (valor % 2 == 0) {
            System.out.println("El valor " + valor + " es par");
         }
         else {
          System.out.println("El valor " + valor + " es impar");
         }
      }
   System.out.println("Hasta pronto");
   }
}

Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla:

$>java EsPar
Por favor, introduce un argumento entero
Hasta pronto

$>java EsPar 4
El valor 4 es par
Hasta pronto

$>java EsPar 5
El valor 5 es impar
Hasta pronto

5.3. Sentencia switch
       Es una sentencia condicional multiramificada o de selección multiple: dependiendo del valor de
una variable o expresion entera permite ejecutar una o varias sentencias de entre muchas. La expresión
 Programación orientada a objetos con Java                                                          63


puede ser de un tipo ordinal (de tipo entero byte, short ó int o de tipo carácter char) pero no
puede ser de un tipo real o de un tipo cadena.

Sintaxis:

switch (expresion) {
    case valor_1: sentencias_1; break;
    case valor_2: sentencias_2; break;
    ...
    case valor_n: sentencias_n; break;
[default: sentencias_x;]
    }

        Cada sentencia case contiene un único valor distinto del de las demás sentencias case. A
continuación del valor se introduce la sentencia o sentencias que se ejecutan en el caso de que el valor
indicado coincida con el de la variable o expresión selector. Las sentencias que siguen a cada uno de los
valores no se engloban entre llaves, pero suelen ir seguidas de un break.

      Si la expresión no coincide con ningún valor se ejecuta la sentencia que sigue a default,
aunque esta parte (default) no es obligatoria.

        Si no existe algún break, continua la ejecución de la siguiente opción hasta el siguiente break o
hasta el final de la sentencia switch.

       El flujograma de la sentencia switch se muestra en la Figura 5.2.




                              Figura 5.2. Flujograma de la sentencia switch

        A continuación se muestra un ejemplo de programa que emplea la sentencia switch para
visualizar en pantalla mensajes distintos, en función del primer caracter del primer argumento
introducido en la línea de comandos de la ejecución:
/**
 * Ejemplo de uso de la sentencia switch
 * A. Garcia-Beltran - marzo, 2004
 */
public class Caracter {
  public static void main (String [] args) {
64                                                                   A. García-Beltrán y J.M. Arranz


       char c;
       c=args[0].charAt(0);
       switch (c) {
         case 'a': System.out.println("Es la vocal a"); break;
         case 'e': System.out.println("Es la vocal e"); break;
         case 'i': System.out.println("Es la vocal i"); break;
         case 'o': System.out.println("Es la vocal o"); break;
         case 'u': System.out.println("Es la vocal u"); break;
         case 'A': System.out.println("Es la vocal A");
         case 'E':
         case 'I':
         case 'O':
         case 'U': System.out.println("Vocal mayuscula"); break;
         default: System.out.println("No es una vocal"); break;
       }
    System.out.println("Hasta la vista");
    }
}

Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla:

$>java Caracter a
Es la vocal a
Hasta la vista

$>java Caracter e
Es la vocal e
Hasta la vista

$>java Caracter u
Es la vocal u
Hasta la vista

$>java Caracter A
Es la vocal A
Es una vocal mayuscula
Hasta la vista

$>java Caracter E
Es una vocal mayuscula
Hasta la vista

$>java Caracter B
No es una vocal
Hasta la vista

Contenu connexe

Tendances

Curso Java Inicial 3 Sentencias De Control De Flujo
Curso Java Inicial   3 Sentencias De Control De FlujoCurso Java Inicial   3 Sentencias De Control De Flujo
Curso Java Inicial 3 Sentencias De Control De FlujoEmilio Aviles Avila
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en JavaJdcaste
 
Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlJose Selman
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De Controlmtemarialuisa
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
Sentencias de Programacion
Sentencias de ProgramacionSentencias de Programacion
Sentencias de Programacionaeroscar90
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlKarina Arguedas Ruelas
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlparada137
 
Estructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CEstructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CMarvin Romero
 

Tendances (18)

Sentencias de control
Sentencias de controlSentencias de control
Sentencias de control
 
Curso Java Inicial 3 Sentencias De Control De Flujo
Curso Java Inicial   3 Sentencias De Control De FlujoCurso Java Inicial   3 Sentencias De Control De Flujo
Curso Java Inicial 3 Sentencias De Control De Flujo
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
Presentacion c
Presentacion c Presentacion c
Presentacion c
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en Java
 
Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow Control
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De Control
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Sentencias de Programacion
Sentencias de ProgramacionSentencias de Programacion
Sentencias de Programacion
 
C++
C++C++
C++
 
Presentacion c++
Presentacion c++Presentacion c++
Presentacion c++
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje CEstructuras de Control en Lenguaje C
Estructuras de Control en Lenguaje C
 
Las variables y constantes
Las variables y constantesLas variables y constantes
Las variables y constantes
 

En vedette (16)

Assignment 3
Assignment 3Assignment 3
Assignment 3
 
Consenso Científico sobre el Boro
Consenso Científico sobre el BoroConsenso Científico sobre el Boro
Consenso Científico sobre el Boro
 
Computo1
Computo1Computo1
Computo1
 
Melissa Fox - Informed Decision Making & Patient Centred Care for Children Fr...
Melissa Fox - Informed Decision Making & Patient Centred Care for Children Fr...Melissa Fox - Informed Decision Making & Patient Centred Care for Children Fr...
Melissa Fox - Informed Decision Making & Patient Centred Care for Children Fr...
 
Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)
 
Meer rendement op winkellocaties
Meer rendement op winkellocatiesMeer rendement op winkellocaties
Meer rendement op winkellocaties
 
Adrian Medina- CV
Adrian Medina- CVAdrian Medina- CV
Adrian Medina- CV
 
เเบบสำรวจนักเรียน
เเบบสำรวจนักเรียนเเบบสำรวจนักเรียน
เเบบสำรวจนักเรียน
 
Fiscalía captura 70 violadores de mujeres en diferentes regiones del país
Fiscalía captura 70 violadores de mujeres en diferentes regiones del paísFiscalía captura 70 violadores de mujeres en diferentes regiones del país
Fiscalía captura 70 violadores de mujeres en diferentes regiones del país
 
ApresentaçãO1
ApresentaçãO1ApresentaçãO1
ApresentaçãO1
 
Pere Ibern-La depresión en el ámbito laboral
Pere Ibern-La depresión en el ámbito laboralPere Ibern-La depresión en el ámbito laboral
Pere Ibern-La depresión en el ámbito laboral
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Tecnologia
TecnologiaTecnologia
Tecnologia
 
Comunicación
ComunicaciónComunicación
Comunicación
 
Presentación atención al cliente
Presentación atención al clientePresentación atención al cliente
Presentación atención al cliente
 
Introdução à gd
Introdução à gdIntrodução à gd
Introdução à gd
 

Similaire à 5 sentenciasselectivasocondicionales

Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de controlmariaisabelg
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++die_dex
 
Instrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoInstrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoandreadelacruz002
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++andreadelacruz002
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
Estructuras de decisión o selectivas
Estructuras de decisión o selectivasEstructuras de decisión o selectivas
Estructuras de decisión o selectivasDenisse C
 
Presentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraPresentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraJOSUEANIBALCOCHOJILH
 
Actividad de Inicio Programación
Actividad de Inicio ProgramaciónActividad de Inicio Programación
Actividad de Inicio ProgramaciónYesicaMendoza18
 
Estructuras algoritnicas de control
Estructuras algoritnicas de controlEstructuras algoritnicas de control
Estructuras algoritnicas de controlMiguel Martinez
 

Similaire à 5 sentenciasselectivasocondicionales (20)

Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de control
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Clase 6
Clase 6Clase 6
Clase 6
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
 
Documento Margarita
Documento MargaritaDocumento Margarita
Documento Margarita
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Comandos Java
Comandos JavaComandos Java
Comandos Java
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Articulo
ArticuloArticulo
Articulo
 
Instrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoInstrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardado
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++
 
Javaintroduccion 2010
Javaintroduccion 2010Javaintroduccion 2010
Javaintroduccion 2010
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
Yy
YyYy
Yy
 
lp1t3.pdf
lp1t3.pdflp1t3.pdf
lp1t3.pdf
 
Estructuras de decisión o selectivas
Estructuras de decisión o selectivasEstructuras de decisión o selectivas
Estructuras de decisión o selectivas
 
Presentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraPresentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructura
 
Actividad de Inicio Programación
Actividad de Inicio ProgramaciónActividad de Inicio Programación
Actividad de Inicio Programación
 
Estructuras algoritnicas de control
Estructuras algoritnicas de controlEstructuras algoritnicas de control
Estructuras algoritnicas de control
 

Dernier

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 

Dernier (20)

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 

5 sentenciasselectivasocondicionales

  • 1. 60  A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado de una secuencia de sentencias condicionales combinadas o no c) Codificar una tarea sencilla convenientemente especificada, utilizando la secuencia y combinación de sentencias condicionales 5.1. Sentencias de control del flujo de un programa Cuando se escribe un programa, se introduce la secuencia de sentencias dentro de un archivo. Sin sentencias de control del flujo, el intérprete ejecuta las sentencias conforme aparecen en el programa de principio a fin. Las sentencias de control de flujo se emplean en los programas para ejecutar sentencias condicionalmente, repetir un conjunto de sentencias o, en general, cambiar el flujo secuencial de ejecución. Las sentencias selectivas o condicionales se verán en este capítulo y las sentencias repetitivas en el siguiente. 5.2. Sentencia if-else Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la sentencia o sentencias (1) que se encuentra a continuacion. En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta existe). La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes sentencias. Sintaxis: if (expresionLogica) { sentencia_1; } o bien (con dos ramas): if (expresionLogica) { sentencia_1; } else { sentencia_2; } La expresionLogica debe ir entre paréntesis. Las llaves sólo son obligatorias si las sentencias (1) ó (2) son compuestas (las llaves sirven para agrupar varias sentencias simples). La parte else y la sentencia posterior entre llaves no son obligatorias. En este caso quedaría una sentencia selectiva con una rama (Figura 5.1).
  • 2.  Programación orientada a objetos con Java 61 Figura 5.1. Flujograma de la sentencia if. Con una rama (a la izquierda) y con dos ramas (a la derecha) Un ejemplo muy sencillo que muestra este tipo de sentencia es el siguiente: // Codigo autoexplicativo if (a>b) { System.out.println(”a es mayor que b"); } else { System.out.println(”a no es mayor que b"); } Ejemplo de programa completo: /** * cuadrado: Ejemplo de sentencia if * Muestra el cuadrado de un valor entero introducido como parametro * A. Garcia-Beltran, 16 de marzo de 2004 */ public class Cuadrado { public static void main (String [] args) { int valor; if (args.length == 0) System.out.println("Por favor, introduce un argumento entero"); else { valor = Integer.parseInt(args[0]); System.out.println("El cuadrado es " + valor*valor); } System.out.println("Hasta pronto"); } } Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla: $>java Cuadrado Por favor, introduce un argumento entero Hasta pronto $>java Cuadrado 4 El cuadrado es 16 Hasta pronto Todo programa o aplicación independiente de Java debe declarar un método principal con la siguiente cabecera:
  • 3. 62  A. García-Beltrán y J.M. Arranz public static void main (String [] args) Esta declaración indica que al método main se le transfiere un vector de cadenas, args, (array de strings). Este vector contiene todos los parámetros o argumentos indicados en la línea de comandos al realizar la ejecución del intérprete de Java seguido del nombre de la clase a ejecutar. El primer elemento de este vector es args[0]. El tamaño del vector podría determinarse añadiendo .length a su identificador. Como el índice del primer elemento del vector es 0, si el tamaño del vector es n, entonces el último elemento del vector tiene índice n-1. En el ejemplo anterior de ejecución del programa, args[0] vale "4". Las sentencias if–else pueden ir anidadas unas dentro de otras en el código fuente del programa. Por ejemplo: /** * esPar: Ejemplo de sentencias if anidadas * Indica si el valor entero introducido como parametro es par o no * A. Garcia-Beltran, 29 de octubre de 2004 */ public class EsPar { public static void main (String [] args) { int valor; if (args.length == 0) System.out.println("Por favor, introduce un argumento entero"); else { valor = Integer.parseInt(args[0]); if (valor % 2 == 0) { System.out.println("El valor " + valor + " es par"); } else { System.out.println("El valor " + valor + " es impar"); } } System.out.println("Hasta pronto"); } } Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla: $>java EsPar Por favor, introduce un argumento entero Hasta pronto $>java EsPar 4 El valor 4 es par Hasta pronto $>java EsPar 5 El valor 5 es impar Hasta pronto 5.3. Sentencia switch Es una sentencia condicional multiramificada o de selección multiple: dependiendo del valor de una variable o expresion entera permite ejecutar una o varias sentencias de entre muchas. La expresión
  • 4.  Programación orientada a objetos con Java 63 puede ser de un tipo ordinal (de tipo entero byte, short ó int o de tipo carácter char) pero no puede ser de un tipo real o de un tipo cadena. Sintaxis: switch (expresion) { case valor_1: sentencias_1; break; case valor_2: sentencias_2; break; ... case valor_n: sentencias_n; break; [default: sentencias_x;] } Cada sentencia case contiene un único valor distinto del de las demás sentencias case. A continuación del valor se introduce la sentencia o sentencias que se ejecutan en el caso de que el valor indicado coincida con el de la variable o expresión selector. Las sentencias que siguen a cada uno de los valores no se engloban entre llaves, pero suelen ir seguidas de un break. Si la expresión no coincide con ningún valor se ejecuta la sentencia que sigue a default, aunque esta parte (default) no es obligatoria. Si no existe algún break, continua la ejecución de la siguiente opción hasta el siguiente break o hasta el final de la sentencia switch. El flujograma de la sentencia switch se muestra en la Figura 5.2. Figura 5.2. Flujograma de la sentencia switch A continuación se muestra un ejemplo de programa que emplea la sentencia switch para visualizar en pantalla mensajes distintos, en función del primer caracter del primer argumento introducido en la línea de comandos de la ejecución: /** * Ejemplo de uso de la sentencia switch * A. Garcia-Beltran - marzo, 2004 */ public class Caracter { public static void main (String [] args) {
  • 5. 64  A. García-Beltrán y J.M. Arranz char c; c=args[0].charAt(0); switch (c) { case 'a': System.out.println("Es la vocal a"); break; case 'e': System.out.println("Es la vocal e"); break; case 'i': System.out.println("Es la vocal i"); break; case 'o': System.out.println("Es la vocal o"); break; case 'u': System.out.println("Es la vocal u"); break; case 'A': System.out.println("Es la vocal A"); case 'E': case 'I': case 'O': case 'U': System.out.println("Vocal mayuscula"); break; default: System.out.println("No es una vocal"); break; } System.out.println("Hasta la vista"); } } Ejemplos de ejecución del programa anterior y salidas correspondientes por pantalla: $>java Caracter a Es la vocal a Hasta la vista $>java Caracter e Es la vocal e Hasta la vista $>java Caracter u Es la vocal u Hasta la vista $>java Caracter A Es la vocal A Es una vocal mayuscula Hasta la vista $>java Caracter E Es una vocal mayuscula Hasta la vista $>java Caracter B No es una vocal Hasta la vista