Upload
lina-castro
View
214
Download
0
Embed Size (px)
DESCRIPTION
Â
Citation preview
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.
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) …….
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
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á
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
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 :
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
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)
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
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;
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:
El resultado sería: