Sentencias de Seleccion Progra

33
SENTENCIAS DE SELECCIÓN CURSO DE PROGRAMACIÓN RECUERDA QUE: UNA CONDICIÓN ESTÁ RECUERDA QUE: UNA CONDICIÓN ESTÁ FORMADA POR EXPRESIONES LÓGICAS Y FORMADA POR EXPRESIONES LÓGICAS Y SOLAMENTE PUEDEN TENER DOS SOLAMENTE PUEDEN TENER DOS VALORES: "VERDADERO" Y "FALSO". VALORES: "VERDADERO" Y "FALSO".

description

Seleccion de progra

Transcript of Sentencias de Seleccion Progra

  • SENTENCIAS DE SELECCINCURSO DE PROGRAMACINRECUERDA QUE: UNA CONDICIN EST FORMADA POR EXPRESIONES LGICAS Y SOLAMENTE PUEDEN TENER DOS VALORES: "VERDADERO" Y "FALSO".

  • OBJETIVOSImplementar sentencias de control de seleccin en un programa usando sentencias if.Implementar controles de seleccin en un programa usando sentencias switch.Escribir expresiones booleanas usando operadores relacinales y booleanos.Evaluar determinadas expresiones booleanas correctamente.Anidar una sentencia if dentro de otra sentencia if then o else correctamente.Elegir la sentencia de seleccin de control adecuada para una determinada Tarea.Escribir aplicaciones usando las clases CuadroLista de la clase javabook y la clase Color del paquete estndar java.awt.

  • FLUJO DE CONTROLLas sentencias de los programas se ejecutan en secuencia, lo que se denomina ejecucin secuencial o flujo de contral, secuencial.Sin embargo, se pueden aadir sentencias de toma de decisiones a un programa para alterar este flujo de control. La sentencia que altera el flujo de control se denomina una sentencia de control.En este captulo se describen algunas sentencias de control importantes denominadas sentencias de seleccin.En el siguiente captulo, describiremos otras sentencias de control denominadas sentencias de repeticin.

  • LA SENTENCIA IFSe usa una sentencia if para especificar qu bloque de cdigo se ejecuta.Un bloque el cdigo puede contener cero o ms sentencias.Qu bloque de cdigo se ejecuta depende de resultado de la evaluacin de una condicin de prueba, denominada expresin booleana.Un sentencia if en un programa que tiene el siguiente formato general:if ( ) else

  • if (puntuacionPrueba < 70) cuadroMensaje.show("no ha aprobado);else cuadroMensaje.show("ha aprobado");Bloque thenBloque elseExpresin Booleana

  • OPERADORES RELACINALES< // menor que // mayor que>= // mayor que o igual a

  • EJEMPLOSa*a 7 //cierto si a + 4 es mayor que 7b - 6 >= d //cierto si b - 6 es mayor o igual a d

  • DIAGRAMA DE FLUJOpuntuacionPrueba < 70cuadroMensaje.show (Ha aprobado);cuadroMensaje.show (No ha aprobado);FV

  • if (puntuacionPrueba < 70) { cuadroMensaje.show(No ha aprobado); cuadroMensaje.show(Intntelo otra vez); } else { cuadroMensaje.show(Ha aprobado); cuadroMensaje.show(Siga trabajando"); }Sentencias compuestasSENTENCIAS COMPUESTAS

  • ESTILOif () {else {}

    if (){}else{}Estilo 1Estilo 2

  • REGLAS PARA ESCRIBIR LOS BLOQUES THEN Y ELSE1. Las llaves izquierda y derecha son necesarias para rodear a las sentencias si el bloque then o el bloque else contienen mltiples sentencias.2. Las llaves no son necesarias si el bloque then o el bloque else contienen una nica sentencia.3. No se necesita un punto y coma despus de la llave derecha.

  • IF ABREVIADOpuntuacionPrueba>=95cuadroMensaje.show (Ud. es excelente);FVif (puntuacionPrueba >= 95) { cuadroMensaje.show(Ud. es excelente); }else {}

  • PREGUNTAS RPIDAS1. Identifique las sentencias if invlidasa. if(a < b) thenc . if(a < b) x = y; x = y; elseelse { x= z; x= z;}b. if ( a < b ) d. if ( a < b ) {else x = y;x = y; } elsex = z;2. Exprese las siguientes sentencias if-then usando if-then-else. a.if ( a < b ) x = y; b.if ( a < b ) {} c.if ( a < b ) x = y; if ( a >= b ) x = z;

  • EXPRESIONES BOOLEANAS Y VARIABLESTres operadores booleanos son AND, OR y NOT.En Java, los smbolos &&, ||, y ! representan los operadores AND, OR y NOT respectivamente.Operadores booleanos y su significado.ABA&&BA||B!AFFFFVFVFVVVFFVFVVVVFV = verdadero, F = falso

  • EJEMPLOS(x 150) x < y && ! (y < z && z < x)x/y > z || y==0evaluacin en corto circuitoy==0 || x/y > z

  • ERROR FRECUENTEUn error muy frecuente cuando se escribe un programa es mezclar los operadores de asignacin y de igualdad.Frecuentemente cometemos el error de escribir.if (x = 5) . . .cuando realmente queramos decir:if (x == 5) ...

  • PREGUNTAS RPIDASEvale las siguientes expresiones booleanas. Suponga que x, y y z tienen valores numricos. a. a < 5 || 6 == 6 b. 2 < 4 && (false || 5
  • SENTENCIAS IF ANIDADASLas clusulas then y else de una sentencia if pueden contener cualquier sentencia, incluyendo otra sentencia if.Una sentencia if que contiene otra sentencia if, bien en el bloque then o bien en el bloque else, se denomina una sentencia if anidada.Recuerda que: una sentencia if puede contener otras sentencias if. Si esto ocurre decimos que tenemos sentencias if anidadas.

  • EJEMPLOif (puntuacionPrueba >= 70) { if (edadEstudiante < 10) { cuadroMensaje.show( "Ha hecho un gran trabajo"); } else { //puntuacin prueba >= 70 //y edad >= 10 cuadroMensaje.show("Ha aprobado"); } } else { // puntuacin prueba < 70 cuadroMensaje.show("No ha aprobado"); }

  • OTRA VERSINif (puntuacionPrueba >= 70 && edadEstudiante < 10) { cuadroMensaje.show( "Ha hecho un gran trabajo"); } else { //o bien puntuacin prueba < 70 OR // edad >= 10 if (puntuacionPrueba >= 70){ cuadroMensaje.show("Ha aprobado"); } else { cuadroMensaje.show("No ha aprobado"); } }

  • if (num1 < 0) if (num2 < 0) if (num3 < 0) contadorNegativo = 3; //los tres son negativos else contadorNegativo = 2; //num1 y num2 son negativos else if (num3 < 0) contadorNegativo = 2; //num1 y num3 son negativos else contadorNegativo = 1; //num1 es negativo else if (num2 < 0) if (num3 < 0) contadorNegativo =2; // num2 y num3 son negativos else contadorNegativo = 1; // num2 es negativo else if (num3 < 0) contadorNegativo =1; // num3 es negativo else contadorNegativo =0; // no hay nmeros negativos

  • OTRA VERSINcontadorNegativo = 0;if (num1 < 0) contadorNegativo++;if (num2 < 0) contadorNegativo++;if (num3 < 0) contadorNegativo++ ;

  • CLCULO DE LA NOTA DE UN ESTUDIANTEPrueba puntuacin Nota90 < puntuacin A80
  • if (puntuacin >= 90) cuadroMensaje.show("Su nota es A"); else if (puntuacin >= 80) cuadroMensaje.show("Su nota es B"); else if (puntuacin >= 70) cuadroMensaje.show("Su nota es C"); else if (puntuacin >= 60) cuadroMensaje.show("Su nota es D"); else cuadroMensaje.show("Su nota es F");

  • if (puntuacin >= 90) cuadroMensaje.show("Su nota es A"); else if (puntuacin >= 80) cuadroMensaje.show("Su nota es B"); else if (puntuacin >= 70) cuadroMensaje.show("Su nota es C"); else if (puntuacin >= 60) cuadroMensaje.show("Su nota es D"); else cuadroMensaje.show("Su nota es F");

  • ELSE COLGADOif (x < y) if (x < z) cuadroMensaje.show("Hola") ; else cuadroMensaje.show("Adis") ; if (x < y) if (x < z) cuadroMensaje.show("Hola") ; else cuadroMensaje.show("Adis") ;

  • SOLUCINif (x < y){ if (x < z) cuadroMensaje.show("Hola") ; } else cuadroMensaje.show("Adis") ;

  • PREGUNTAS RPIDAS1. Rescriba las siguientes sentencias de if anidados sin usar ningn anidamiento: a. if ( a < c ) c. if ( a < b ) if ( b < c ) if ( a >- b ) x = y; x = z; else else x = z; x = y; else else x = z; x = z; b. if ( a -= b ) x = y; else if ( a > b ) x = y; else x = z;

  • PREGUNTAS RPIDAS2. D formato a las siguientes sentencias if usando sangrado.a. if(ad)x = y; else x = z;b. if(a d)x = y;}else x = z;c. if(a
  • LISTBOXSe considera una interfaz mejor aquella que permite al usuario introducir solamente valores que son vlidos, en lugar de detectar los errores despus de que el usuario ha introducido un valor invlido.Existe un objeto ListBox en el paquete javabook que proporciona una lista de elementos que el usuario puede seleccionar.

    MainWindow ventanaPrincipal = new MainWindow( ); ListBox colorLista = new ListBox(ventanaPrincipal);

  • Si desea especificar su propio ttulo, hay que pasar dicho ttulo como segundo argumento cuando se crea un objeto como en:colorLista = new ListBox(ventanaPrincipal, "SeleccioneColor);Se aaden los nombres de los colores usando el mensaje additemcolorLista.addItem("Magenta"); colorLista.addItem("Cyan"); colorLista.addItem("Rojo"); colorLista.addItem("Azul"); colorLista.addItem("Verde");y se ejecutaseleccion = colorLista.getSelectedIndex( );

  • El mtodo getSelectedIndex devuelve NO_SELECTION si el usuario pulsa el botn OK sin seleccionar una opcin y devuelve CANCEL si el usuario pulsa el botn Cancel o la opcin cerrar la ventana.Despus de que el mtodo getSelectedIndex devuelve un valor, el objeto ListBox desaparece de la pantalla. NO_SELECTION y CANCEL son constantes pblicas de clase de tipo int y se hace referencia a las mismas como:CuadroLista.NO_SELECTIONCuadroLista.CANCEL

  • El cdigo siguiente muestra el nombre del color seleccionado:seleccion = colorLista.getSelectedIndex( );if (seleccion == CuadroLista.NO_SELECTION) cuadroMensaje.show("No ha seleccionada nada"); else if (seleccion == CuadroLista.CANCEL) cuadroMensaje.show("Ha cancelado CuadroLista") else if (seleccion == 0) cuadroMensaje.show("Ha seleccionado Magenta"); else if (seleccion == 1) cuadroMensaje.show("Ha seleccionado Cyan"); else if (seleccion == 2) cuadroMensaje.show("Ha seleccionado Rojo"); else if (seleccion == 3) cuadroMensaje.show("Ha seleccionado Azul"); else if (seleccion == 4) cuadroMensaje.show("Ha seleccionado Verde");