miércoles, 18 de abril de 2012

Programando en Java con Eclipse V - Estructuras condicionales anidadas

Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional, es decir, cuando se toma una decisión según lo acordado en una decisión previa.

Por ejemplo:

Decisión 1: ¿Voy o no voy al cine?

si se decide que si voy al cine entonces se enfrenta otra decisión:

Decisión 2: ¿Qué película veré?

diagrama flujo estructura condicional anidada



El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la rama del falso de la primer estructura.
Es común que se presenten estructuras condicionales anidadas aún más complejas.

Problema:


Desarrollar un programa en Java que pida por teclado tres calificaciones de un alumno, calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobado".

Diagrama de flujo:


problema estructuras condicionales anidades

Analicemos el siguiente diagrama. Se ingresan tres valores por teclado que representan las notas de un alumno, se obtiene el promedio sumando los tres valores y dividiendo por 3 dicho resultado (Tener en cuenta que si el resultado es un valor real solo se almacena la parte entera).
Primeramente preguntamos si el promedio es superior o igual a 7, en caso afirmativo va por la rama del verdadero de la estructura condicional mostramos un mensaje que indica "Promocionado" (con comillas indicamos un texto que debe imprimirse en pantalla).
En caso que la condición nos de falso, por la rama del falso aparece otra estructura condicional, porque todavía debemos averiguar si el promedio del alumno es superior o igual a cuatro o inferior a cuatro.
Estamos en presencia de dos estructuras condicionales compuestas.

 

Programa:


import java.util.Scanner;

public class EstructuraCondicionalAnidada1 {
public static void main(String[] ar) {
Scanner teclado=new Scanner(System.in);
int nota1,nota2,nota3;
System.out.print("Ingrese primer nota:");
nota1=teclado.nextInt();
System.out.print("Ingrese segunda nota:");
nota2=teclado.nextInt();
System.out.print("Ingrese tercer nota:");
nota3=teclado.nextInt();
int promedio=(nota1 + nota2 + nota3) / 3;
if (promedio>=7) {
System.out.print("Promocionado");
} else {
if (promedio>=4) {
System.out.print("Regular");
} else {
System.out.print("Reprobado");
}
}
}
}

Codifiquemos y ejecutemos este programa. Al correr el programa deberá solicitar por teclado la carga de tres notas y mostrarnos un mensaje según el promedio de las mismas.
Podemos definir un conjunto de variables del mismo tipo en una misma línea:
        int nota1,nota2,nota3;

Esto no es obligatorio pero a veces, por estar relacionadas, conviene.
A la codificación del if anidado podemos observarla por el else del primer if.
Para no tener problemas (olvidarnos) con las llaves de apertura y cerrado podemos ver la siguiente regla:
Cada vértice representa una llave de apertura y una de cierre:

llaves en los if en java

Eso es todo por ahora y recuerden que la práctica hace al maestro y por cierto no olviden cuando revisen estos cursos tener a mano los dos mejores amigos del programador: San Google y Café (en abundancia).

Hasta la próxima entrega y no te olvides de recomendar este blog!!!!!

1 comentario:

  1. Esto es muy beneficioso, gracias por la indicacion. Voy a ser otro de los que valora a tu web

    ResponderEliminar