Estructuras Condicionales y Multiples en Java

Embed Size (px)

Citation preview

  • ESTRUCTURAS CONDICIONALES Y REPETITIVASMsc. Fausto Torres M.

  • Estructuras CondicionalesConstrucciones para lo toma de decisionesLa sentencia if de una sola alternativa.La sentencia if - else de doble alternativa.La sentencia if else de alternativa mltiple.La sentencia switch

  • Estructuras SelectivasLa sentencia if de una sola alternativa.

    if (condicion) {// bloque de sentencias}if (nota > 10)if (nota > 10){ System.out.println(Esta aprobado); }

  • La sentencia if de una sola alternativaPrograma que imprime en pantalla si se tiene una nota aprobatoria o desaprobatoria.package ejemplo07; import javax.swing.JOptionPane;public class Ejemplo07 { public static void main(String[] args) { int nota; nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota")); if (nota>10){ JOptionPane.showMessageDialog(null,"Esta aprobado"); } }}

  • La sentencia if - else de doble alternativaSelectiva doble

    if (condicion) {// bloque de sentencias}else{ // bloque de sentencias}Condicin ?Accin VVFAccin FFin

  • package ejemplo07; import javax.swing.JOptionPane;public class Ejemplo07 { public static void main(String[] args) { int nota; nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota")); if (nota>10){ JOptionPane.showMessageDialog(null,"Esta aprobado"); } else{ JOptionPane.showMessageDialog(null,"Esta desaprobado"); } }}

    La sentencia if de doble alternativaPrograma que imprime en pantalla si se tiene una nota aprobatoria.

  • La sentencia if else de alternativa mltiple.Selectiva mltiple if else ifif (condicion1){ //bloque de sentencias 1}else if (condicion2){ //bloque de sentencias 2 }else{ //bloque de sentencias } Condicin 1Accin 1VFcondicin2Accin 2VCondicin 3Accin 3SalidaF

  • package ejemplo07; import javax.swing.JOptionPane;public class Ejemplo07 { public static void main(String[] args) { int nota; nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota")); if (nota
  • La sentencia if else de alternativa mltiplePrdida del elseif (temperatura > 37) if (tensionArterial > 12) contadorEnfermo++;else contadorSaludable++;

    el else est asociado al if inmediatamente anterior .if (nota

  • package ejemplo07; import javax.swing.JOptionPane;public class Ejemplo07 { public static void main(String[] args) { int nota; nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota")); if (nota
  • Estructuras Selectivas MltipleSelectiva Mltipleswitch (expresin){ case constante1: sentencia; break; case constante1: sentencia; break; .... default: sentencia; break; }

  • FuncionamientoEl valor del switch (selector) es evaluado en las alternativas una por una.Si encuentra una alternativa que contenga el valor del selector (switch), ejecuta la o las acciones correspondientes a la etiqueta case y termina la estructura si es que existe una sentencia break al final de la etiqueta.El break permite que no contine la ejecucin en el siguiente enunciado case.El uso de default es opcional, sin embargo sirve para ejecutar algo (Accin X) cuando el selector no encuentra su lugar, es decir que su valor no se encuentra contenido en ninguna alternativa.

  • Una empresa ofrece los siguiente productos:Ejemplo:Estructuras Selectivas MltipleEscribir una aplicacin que permita determinar el monto a pagar. Los datos a ingresar son: el cdigo del producto y la cantidad a comprar.

    Cdigo del productoPrecio115220310430

  • package ejemplo07;

    import javax.swing.JOptionPane;public class Ejemplo07 {public static void main(String[] args) { int codigo,cantidad,precio,total; codigo=Integer.parseInt(JOptionPane.showInputDialog("Ingrese el cdigo")); cantidad=Integer.parseInt(JOptionPane.showInputDialog("Ingrese la cantidad")); precio=0; switch(codigo){ case 1: precio=15; break; case 2: precio=20; break; case 3: precio=10; break; case 4: precio=30; break; default: JOptionPane.showMessageDialog(null,"Cdigo de producto no vlido"); } total=precio*cantidad; JOptionPane.showMessageDialog(null, "El precio total es:"+total); }}

  • Estructuras RepetitivasMientraswhile (condicin){ // bloque de sentencias} raiz = 1; while ((raiz * raiz) < x) raiz++; raiz = 1; while ((raiz * raiz) < x){ System.out.println(raiz: +raiz); raiz++; }

  • Estructuras RepetitivasHacer mientrasdo{ // bloque de sentencias}while (condicin); raiz = 0; do{ raiz++; }while((raiz * raiz) < x));

  • Estructuras RepetitivasDesde o Parafor ( iniciaVarControl; condicin; incremento ){ // bloque de sentencias} suma = 0; for(int i = 1; i
  • MtodosMtodo con resultado tipo_a_retornar identificador( lista de parametros formales) { //bloque de sentencias return valor_ a_retornar ; }

    El valor a retornar puede ser un valor de tipo primitivo o una referenciaLas variables locales no se inicializan por defecto

    double cubo( float x ){ return x*x*x; }

  • MtodosMtodo tipo void void identificador( lista de parametros formales) { // bloque de sentencias }

    void inicializa( float r, float l ){ radio = r; longitud = l; }

    void mensaje(){ System.out.println("Hola amigos"); }

  • Llamada a un mtodox += cubo(3); System.out.println(cubo(3));inicializa(2.5, 2);inicializa(r, l);mensaje();

    En Java el pase de parmetros es por valor

  • MtodosSobrecarga de mtodos (polimorfismo en la sobrecarga) class Desarmadores{ int tamanhoPunta( float ancho, float espesor, float altura ){ // bloque de sentencias } int tamanhoPunta( float ancho ){ // bloque de sentencias } int tamanhoPunta(int indiceEstandard){ // bloque de sentencias } }

  • Arreglos Unidimensonales (Vectores)Declaracin y Creacin tipo[] nomVector = new tipo[numElementos]; tipo nomVector[] = new tipo[numElementos];al crear un arreglo de objetos, Java lo inicializa en null, indicando que el arreglo an no contiene objetos int[] edades = new int[20];String[] ciudades = new String[50]; int edades[] = new int[20]; Date fiestas[] = new Date[16];

    Los ndices van desde 0 hasta numElementos-1

  • Arreglos Unidimensonales (Vectores)Creacin e inicializacin char vocales [] = {'a', 'e', 'i', 'o', 'u'};

    boolean [] respuestas = { true, false, true, true};

    long cont[] = {10, 15, 20, 25};

  • Arreglos Unidimensonales (Vectores)Acceso a los elementos nomVector[ndice]Recorrido

    int a[] = {1,2,3,4,5}; for (int k = 0; k < a.length; k++){ System.out.println( a[k] ); }

  • Arreglos Unidimensonales (Vectores)Como parmetros de mtodosvoid ordenar( int x[], int n ){}final int N = 100;int a[] = new int[N];ordenar(a, N);En la llamada se pasa la referencia al arreglo

  • Arreglos Unidimensonales (Vectores)Asignacin de arreglosfinal int N = 100;

    int a[] = new int[N];int b[] = new int[20];

    a = b;En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b

  • Arreglos Bidimensonales (Matrices)Declaracin y Creacin tipo nomMatriz[][] = new tipo[numFilas][numColumnas];

    tipo[][] nomMatriz = new tipo[numFilas][numColumnas];int ventas[][] = new int[20][12];

    String [ ][ ] calendario = new String[5][7];

  • Arreglos Bidimensonales (Matrices)Creacin e inicializacin tipo nomMatriz[ ][ ] = {{lista de valores de la fila 0}, {lista de valores de la fila 1},..};int matriz [][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

  • Arreglos Bidimensonales (Matrices)Acceso a los elementos nomMatriz [indFila] [indColumna]Recorridoint ventas[][] = new int[20][12]; for (int i = 0; i < ventas.length; i++) for (int j = 0; j < ventas[i].length; j++){ ventas[i][j] = (i*10 + k); System.out.println(ventas[i][j]); }

  • Arreglos Bidimensonales (Matrices)Como parmetros de mtodos

    void ordenar( int x[][], int m, int n ){}final int N = 100;int a[][] = new int[N][N];ordenar(a, N, N);En la llamada se pasa la referencia al arreglo

  • Arreglos Bidimensonales (Matrices)Asignacin de arreglos

    final int N = 100;

    int a[][] = new int[N][20];int b[][] = new int[20][N];

    a = b;En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b

  • Arreglos MultidimensionalesEl nmero de corchetes requeridos vara de acuerdo a la dimensin del arreglo.

    String [ ][ ][ ] arregloMulti = new String [10][5][3];

  • Fin