SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Último

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
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
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
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
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 

Último (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
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
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
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
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
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
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
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
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 

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