lunes, 31 de octubre de 2011

CONTROL DE FLUJO SELECTIVA

Condicionales múltiples (IF/ELSEIF)
La sentencia if:
Las tres formas como se puede emplear la sentencia if son: 
if (condición)
sentencia;
...o 
if (condición)
sentencia1;
else
sentencia2;
...o 
if (condicion1)
sentencia1;
else if (condicion2)
sentencia2;
... 
else
sentencian;

El flujo lógico de esta estructura es de arriba hacia abajo. La primera sentencia se ejecutará y se saldrá de la estructura if si la primera condición es verdadera. Si la primera condición fue falsa, y existe otra condición, se evalúa, y si la condición es verdadera, entonces se ejecuta la sentencia asociada. Si existen más condiciones dentro de la estructura if, se van evaluando éstas, siempre y cuando las condiciones que le precedan sean falsas.
La sentencia que esta asociada a la palabra reservada else, se ejecuta si todas las condiciones de la estructura if fueron falsas.
Selección múltiples (SWITCH /CASE)

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 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.

a.    Dado un número  de un mes, devolver el mes en letras
importjava.util.Scanner;
publicclass ejer21 {

   /**
    * @paramargs
    */
   publicstaticvoid main(String[] args) {
         // TODO Auto-generated method stub
int n;
String m="";
Scanner teclado = newScanner(System.in);
System.out.print("Ingrese el numero del mes: ");
n=teclado.nextInt();

switch (n){
case 1:
   m="enero";
   break;
case 2:
   m="febrero";
         break;
case 3:
   m="marzo";
         break;
case 4:
   m="abril";
         break;
case 5:
   m="mayo";
   break;
case 6:
   m="junio";
   break;
case 7:
   m="julio";
   break;
case 8:
   m="agosto";
   break;
case 9:
   m="septiembre";
   break;
case 10:
   m="octubre";
   break;
case 11:
   m="novienbre";
   break;
case 12:
   m="diciembre";
         break;
   System.out.println("");
   System.out.println("el mes es: " +m);
   }
  
   }
2.    Lea un número del 1 al 7 y devuelva el día de la semana, considere que 1 es domingo
Propuesto2

importjava.util. Scanner;
publicclass j21 {

   /**
    * @paramargs
    */
   publicstaticvoid main(String[] args) {
         // TODO Auto-generated method stub
         int n=0;
         String m="";
         Scanner teclado =new Scanner (System.in);
         System .out .print("ingresenumero:  ");
         n=teclado.nextInt();
         switch(n)
         {
         case 1:
               m="Domingo";
               break;
         case 2:
               m="Lunes";
               break;
         case 3:
               m="Martes";
               break;
         case 4:
               m="Miercoles";
               break;
         case 5:
               m="Jueves";
               break;
         case 6:
               m="Viernes";
               break;
         case 7:
               m="Sabado";
               break;
         }
         System.out.println("el dia es :"+m);
   }

}
3.    Dado los siguientes operadores aritméticos +,-,* y /devuelva el nombre del operador
importjava.util.Scanner;
publicclass ejer21 {

   /**
    * @paramargs
    */
   publicstaticvoid main(String[] args) {
         // TODO Auto-generated method stub
char n;
String m="";
Scanner teclado = newScanner(System.in);
System.out.print("Ingrese el operador matematico: ");
n=teclado.next().charAt(0);

switch (n){
case'+':
   m="suma";
   break;
case'-':
   m="resta";
         break;
case'*':
   m="multiplicacion";
         break;
case'/':
   m="divicion";
         break;

   System.out.println("");
   System.out.println("El operador es: " +m);
   }
  
   }
4.    Dado un número de un canal de televisión, determine cuál es el nombre del canal
importjava.util.Scanner;
publicclass ejer21 {

   /**
    * @paramargs
    */
   publicstaticvoid main(String[] args) {
         // TODO Auto-generated method stub
int n;
String m="";
Scanner teclado = newScanner(System.in);
System.out.print("Ingrese el canal: ");
n=teclado.nextInt();

switch (n){
case 2:
   m="Panamericana";
   break;
case 5:
   m="ATV";
         break;
case 11:
   m="Frecuencia Latina";
         break;
case 13:
   m="America TV";
         break;
case 15:
   m="Red Global";
         break;

   System.out.println("");
   System.out.println("El nombre del canal es: " +m);
   }
  
   }

5.    En una empresa se ha determinado la siguiente política de descuento
                           Sexo
tarjeta
Hombre
Mujeres
Obrero
15%
10%
empleado
20%
15%

importjava.util. Scanner;
publicclass ej5 {

   /**
    * @paramargs
    */
   publicstaticvoidmain(String[] args) {
         // TODO Auto-generatedmethodstub
         charn,s;
         intsu,ds=0;
         String m="";
         Scanner teclado =new Scanner (System.in);
         System .out .print("ingrese sueldo:");
         su=teclado.nextInt();
         System .out .print("targeta  :");
         n=teclado.next().charAt(0);
         System .out .print("ing sexo :  ");
         s=teclado.next().charAt(0);
         switch(n)
         {
         case'o':
               switch(s){
         case'm':
               ds=(su*15)/100;
                            m="15% de descuento";
               break;
         }
        
         }
         switch(n)
         {
         case'o':
               switch(s){
         case'f':
               ds=(su*10)/100;
                            m="10% de descuento";
               break;
         }
        
         }
         switch(n)
         {
         case'e':
               switch(s){
         case'm':
               ds=(su*20)/100;
                            m="20% de descuento";
               break;
         }
        
         }
         switch(n)
         {
         case'e':
               switch(s){
         case'f':
               ds=(su*15)/100;
                            m="15% de descuento";
               break;
         }
        
         }
         System.out.println("el descuento es :"+ m);
         System.out.println("el descuento es :"+ ds);
   }