12
Unidad 3: Decisiones En la unidad anterior se realizaron programas que ejecutan las instrucciones en un orden secuencial, es decir, programas cuya ejecución se realiza en el mismo orden en que han sido escritos. Sin embargo, en algunas ocasiones es necesario que se evalúe una pregunta que arroja un resultado FALSO / VERDADESO y dependiendo de la respuesta se ejecutan determinadas instrucciones u otras. Sentencia if Esta sentencia sirve para realizar alguna(s) instrucción(es) en vez de otra(s) de acuerdo a alguna condición que resulte verdadera. A continuación se analizará la sintaxis de las decisiones en Java y después se darán algunos ejemplos. Sintaxis if ( condición ) bloque de sentencias; else // la parte else es opcional En donde: La palabra if es una palabra reservada de Java, es el código para plantear preguntas. Condición es una expresión booleana que se evalúa para ver si la condición es falsa o verdadera. Si la evaluación de la condición es verdadera, entonces se ejecuta la instrucción o conjunto de instrucciones, los cuales se encuentran dentro del bloque { }. En caso de ser la condición falsa, no se ejecuta la instrucción o conjunto de instrucciones. Luego de ejecutar el bloque de instrucciones asociados al if, la ejecución del programa continua con las instrucciones que estén por debajo del bloque.

1 intro progrmacio ob capitulo 3 01 manejo condiciones

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

Unidad 3: Decisiones

En la unidad anterior se realizaron programas que ejecutan las instrucciones en un orden secuencial, es decir, programas cuya ejecución se realiza en el mismo orden en que han sido escritos.

Sin embargo, en algunas ocasiones es necesario que se evalúe una pregunta que arroja un resultado FALSO / VERDADESO y dependiendo de la respuesta se ejecutan determinadas instrucciones u otras.

Sentencia if

Esta sentencia sirve para realizar alguna(s) instrucción(es) en vez de otra(s) de acuerdo a alguna condición que resulte verdadera. A continuación se analizará la sintaxis de las decisiones en Java y después se darán algunos ejemplos.

Sintaxis

if ( condición )

bloque de sentencias;

else // la parte else es opcional

En donde:

• La palabra if es una palabra reservada de Java, es el código para plantear preguntas. • Condición es una expresión booleana que se evalúa para ver si la condición es falsa o

verdadera. • Si la evaluación de la condición es verdadera, entonces se ejecuta la instrucción o

conjunto de instrucciones, los cuales se encuentran dentro del bloque { }. En caso de ser la condición falsa, no se ejecuta la instrucción o conjunto de instrucciones.

Luego de ejecutar el bloque de instrucciones asociados al if , la ejecución del programa continua con las instrucciones que estén por debajo del bloque.

Page 2: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

En caso de requerir más de una sentencia es necesario usar llaves.

if ( condición ) { bloque de sentencias; }

else { // la parte else es opcional bloque de sentencias; }

Una condición es la comparación de una variable/constante/expresión-numérica contra otra variable/constante/expresión-numérica. A este tipo de condición se le llama condición simple, la condición compleja se manejará en la última unidad. La condición simple utiliza los siguientes operadores de relación:

Operadores Relacionales

Los operadores relacionales que tiene Java son:

Operador en Java Significado

== Igual != Diferente < Menor que > Mayor que

<= Menor o igual que >= Mayor o igual que

Un ejemplo puede ser que X sea igual a 10 la condición quedaría como:

if (x == 10) …..

Otro podría ser revisar si el área del círculo con radio r es menor que 100

if (Math.PI() * Math.pow(r, 2) < 100) …….

Page 3: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

Ejecución del if

La estructura if (sin else) , ejecuta la lista de sentencias solo cuando la condición es verdadera; en caso de que sea falsa brinca la lista de sentencias

La estructura de selección if / else , ejecuta la(s) acción(es) después de la parte if cuando la condición es verdadera; en caso de que sea falsa ejecuta la(s) acción(es) que está(n) después del else .

Ejemplo

import javax.swing.JOptionPane;

public class decisiones {

public static void main (String args[])

{

String valorNota;

Double numero;

valorNota = JOptionPane.showInputDialog ("Ingrese la nota: ");

numero= Double.parseDouble(valorNota);

if (numero >= 71) //si el número es mayor que o igual que 71 imprime //Usted aprobó el curso

JOptionPane.showMessageDialog(null, "Usted aprobó el curso");

else JOptionPane.showMessageDialog(null,"Usted reprobó el curso");

}

}

Si numero >= 71 Verdadero

Usted aprobó el curso

Falso

Usted reprobó el curso

Page 4: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

La ejecución del programa muestra las siguientes ventanas

Si el número es mayor o igual que 71, muestra el mensaje Usted aprobó el curso.

En caso contrario mostrará

Page 5: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

if ´s anidados

Se dice que hay if anidados cuando existe un if/else dentro de otra estructura if/else

Ejemplo:

Determinar si un número es positivo, cero o negativo.

import javax.swing.JOptionPane;

public class decisiones {

public static void main (String args[])

{ String valorNota;

Double numero;

valorNota = JOptionPane.showInputDialog ("Ingrese el número: ");

numero= Double.parseDouble(valorNota);

if (numero > 0) //si el número es mayor que 0 imprime El número es positivo

JOptionPane.showMessageDialog(null, "El número es positivo");

else

if (numero == 0) //si el número es igual que 0 imprime El número es cero

JOptionPane.showMessageDialog(null,"El número es cero");

else //si el número es menor que 0 imprime El número es negativo

JOptionPane.showMessageDialog(null,"El número es negativo");

}

}

El número es positivo

Falso

(Si numero > 0) Verdadero

Número es cero

Falso

(Si numero = 0) Verdadero

El número es negativo

Page 6: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

La ejecución del código muestra las siguientes ventanas

Una vez determina si el número es mayor que 0, entonces mostrará que el número es positivo

De la misma forma imprimiría si es negativo o si es cero NOTA: Si se tiene el siguiente fragmento de código: if (condición 1) if (condición 2) sentenciaCondicion1y2; //Esta sentencia se resuelve cuando la //condición1 y la co ndición2 son

//verdaderas else // este else pertenece al if de la condición2, p ues se //asocia al if más cercano sentenciaCondicion1; //Esta sentencia se ejec uta cuando la //condición1 es verdader a y la condición2 es

//falsa

Y queremos que el else pertenezca al primer if debemos poner {} para determinar donde termina el segundo if :

Page 7: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

if (condición 1) { if (condición 2) sentenciaCondicion1y2; //Esta sentencia se resuelve cuando la //condición 1 y la c ondición 2 son

//verdaderas } else // este else pertenece al if de la condición 1 sentenciaCondicion1; //Esta sentencia se ejecut a cuando la //condición 1 es Falsa

Page 8: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

Ejemplos de Programas

A continuación tendrás algunos ejemplos de programas

Ejemplo I:

A continuación se muestra una aplicación para la instrucción if/else-if . Escribir un programa para un Curso de programación que lea la nota de un estudiante en una escala de 0 a 5. El programa debe dar la calificación, de acuerdo a la siguiente tabla:

Rango de la calificación

Calificación cualitativa

Mayor que o igual que 4.5

Sobresaliente

Entre 4.4 y 3.6 Buena Entre 3.5 y 3.0 Aceptable Menor que 2.9 Deficiente

Observe que el enunciado tiene 4 posibilidades (pasos a ejecutar) lo cual significa que se deben plantear 3 preguntas, la última posibilidad se toma por descarte. import javax.swing.JOptionPane;

public class decisiones {

public static void main (String args[])

{

String calificacion;

Double nota;

calificacion = JOptionPane.showInputDialog ("Ingrese nota: ");

nota= Double.parseDouble(calificacion);

if(nota>=4.5) JOptionPane.showMessageDialog (null,"Sobresaliente ");

else if (nota<4.49 && nota >3.5)

JOptionPane.showMessageDialog (null,"Buena ");

else if (nota<3.49 && nota >2.95)

Page 9: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

JOptionPane.showMessageDialog (null,"Aceptable");

else

JOptionPane.showMessageDialog (null,"Deficiente");

}

}

La ejecución del programa muestra la siguiente ventana:

Para el ejemplo, el resultado sería

Page 10: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

Ejemplo II

import javax.swing.JOptionPane; public class decisiones {

public static void main(String[] args) {

int numero1, numero2, numero3; int mayor, medio, menor;

String valor=" ", resultado=" ";

valor = JOptionPane.showInputDialog(null,"Ingrese el primer número:");

numero1 = Integer.parseInt ( valor );

valor = JOptionPane.showInputDialog(null,"Ingrese el segundo número:");

numero2 = Integer.parseInt ( valor );

valor = JOptionPane.showInputDialog(null,"Ingrese el tercer número:");

numero3 = Integer.parseInt ( valor );

if ( numero1 > numero2 ){

if ( numero1 > numero3 ){

if ( numero2 > numero3 ){

mayor = numero1; medio = numero2;

menor = numero3;

}

else{

mayor = numero1; medio = numero3;

menor = numero2; }

}

else{ mayor = numero3;

medio = numero1; menor = numero2;

} }

else{

if ( numero2 > numero3 ){ if ( numero1 > numero3 ){

mayor = numero2; medio = numero1;

menor = numero3;

}

else{

mayor = numero2; medio = numero3;

Page 11: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

menor = numero1;

}

}

else{ mayor = numero3;

medio = numero2;

menor = numero1;

}

} resultado = "Número mayor: " + mayor + "\n" +

"Número medio: " + medio + "\n"+ "Número menor: " + menor + "\n";

JOptionPane.showMessageDialog( null, resultado ); }

}

La ejecución del programa muestra las siguientes ventanas:

Page 12: 1 intro progrmacio ob capitulo 3 01 manejo condiciones

El resultado sería: