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

A propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundoA propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundosubfabian
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxJunkotantik
 
ciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasFlor Idalia Espinoza Ortega
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfANEP - DETP
 
a propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionesa propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionessubfabian
 
EVALUACION del tercer trimestre 2024 nap.docx
EVALUACION  del tercer trimestre 2024 nap.docxEVALUACION  del tercer trimestre 2024 nap.docx
EVALUACION del tercer trimestre 2024 nap.docxuniversidad Indoamerica
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxMARCOSMARTINALACAYOP1
 
el poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxel poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxsubfabian
 
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...Chema R.
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechanitoagurto67
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptxJunkotantik
 
TEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónTEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónVasallo1
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxlitaroxselyperezmont
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptxFESARAUGUSTOFANDIORI
 
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocxCONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocxMarlynRocaOnofre
 

Dernier (20)

A propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundoA propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundo
 
Sesión de clase Motivados por la esperanza.pdf
Sesión de clase Motivados por la esperanza.pdfSesión de clase Motivados por la esperanza.pdf
Sesión de clase Motivados por la esperanza.pdf
 
flujo de materia y energía ecosistemas.
flujo de materia y  energía ecosistemas.flujo de materia y  energía ecosistemas.
flujo de materia y energía ecosistemas.
 
Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
ciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemasciclos biogeoquimicas y flujo de materia ecosistemas
ciclos biogeoquimicas y flujo de materia ecosistemas
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
 
a propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionesa propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definiciones
 
EVALUACION del tercer trimestre 2024 nap.docx
EVALUACION  del tercer trimestre 2024 nap.docxEVALUACION  del tercer trimestre 2024 nap.docx
EVALUACION del tercer trimestre 2024 nap.docx
 
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptxDESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
DESCRIPCIÓN-LOS-DILEMAS-DEL-CONOCIMIENTO.pptx
 
el poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptxel poder del estado en el siglo XXI.pptx
el poder del estado en el siglo XXI.pptx
 
¿Que es Fuerza? online 2024 Repaso CRECE.pptx
¿Que es Fuerza? online 2024 Repaso CRECE.pptx¿Que es Fuerza? online 2024 Repaso CRECE.pptx
¿Que es Fuerza? online 2024 Repaso CRECE.pptx
 
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
tema 6 2eso 2024. Ciencias Sociales. El final de la Edad Media en la Penínsul...
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx
 
TEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilizaciónTEMA EGIPTO.pdf. Presentación civilización
TEMA EGIPTO.pdf. Presentación civilización
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
 
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocxCONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
CONCLUSIONES DESCRIPTIVAS TIC que ayudaran a tus registrosdocx
 

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