SlideShare una empresa de Scribd logo
1 de 60
Clase 6
Clase 6: Sentencias de
 Repetición
Después de haber estudiado este capítulo usted podrá:



          Implementar sentencias de repetición en su programa utilizando
           while, do-while y for.
          Implementar sentencias de repetición utilizando: while, do-while y
           for.
          Implementar sentencias de control genéricas
          Realizar sentencias de repetición anidadas
          Elegir la sentencia de repetición adecuada según el problema
          Generar números aleatorios
          Lograr que el usuario interactúe con la máquina en una sesión
           SI-NO para continuar ejecutando el programa

                                                                        2
Definición
   Las sentencias de repetición son un bloque de
    código que son ejecutadas por un cierto número de
    veces hasta que se cumpla una condición.

   Repeticiones controladas por contador: terminan la
    ejecución del bloque después que este ha sido
    ejecutado por un número de veces determinado

   Repeticiones controladas por centinela: termina la
    ejecución del bloque después que un valor diseñado
    como centinela ha sido encontrado.

   Las sentencias de repetición son llamadas LOOP o
    BUCLE.
                                                         3
Sentencia while
//este programa realiza la suma de los 100 primeros
números


int sum = 0, number = 1;


while ( number <= 100 ) {


    sum      =   sum + number;
                                           Estas sentencias son
                                            Estas sentencias son
                                           ejecutadas mientras que
                                            ejecutadas mientras que
                                           la variable number sea
                                            la variable number sea
    number = number + 1;                   menor ooigual que 100
                                            menor igual que 100


}
System.out.print(“La Suma es: “ + suma);


                                                                      4
Sintaxis para la sentencia while
               while ( <expresión booleana> ) {

                         <sentencia 1>
                         <sentencia 1>
                         <sentencia n>           }
                                                     Expresión Booleana
                                                     Expresión Booleana


               while (       number <= 100       ) {

                   sum       =   sum + number;
Sentencias
 Sentencias
(loop body)
 (loop body)       number = number + 1;
               }



                                                                   5
Flujo de Control while

       int sum = 0, number = 1
        int sum = 0, number = 1




                                                                 number = number + 1;
                                          sum = sum + number;

                                                                number = number + 1;
                                         sum = sum + number;
         number <= 100 ?
          number <= 100 ?




        false
                                  true




                                                                                        6
Mas Ejemplos
                                        Sigue sumando
1
1   int sum = 0, number = 1;             Sigue sumando
                                        números 1, 2, 3, …
                                         números 1, 2, 3, …
                                        hasta que la variable
                                         hasta que la variable
    while ( sum <= 1000000 ) {          sum sea mayor aa
                                         sum sea mayor
                                        1,000,000.
                                         1,000,000.
        sum      =    sum + number;
        number = number + 1;
    }


2
2   int producto = 1, numero = 1,       Calcula el producto de
                                         Calcula el producto de
       contador   = 20, ultimoNumero;
                                        los 20 primeros enteros
                                         los 20 primeros enteros

    ultimoNumero = 2 * contador - 1;


    while (numero <= ultimoNumero) {
        producto = producto * numero;
        numero       = numero + 2;
    }
                                                                   7
Encontrando el Maximo Comun Divisor
      public int
          mcdBruteforce(int m, int n) {
          // assume m, n >= 1

          int menor = Math.min(m, n);
          int mcd;
          int i = 1;

          while (i <= menor) {

              if (m%i == 0 && n%i == 0) {
                  mcd = i;
              }

              i++;
          }

          return mcd;
      }

                                            8
                Aproximación directa
Encontrando el Maximo Comun Divisor
        public int gcd(int m, int n) {
            //   no importa si n o m
            //   es mayor, este metodo;
            //   trabaja bien
            //
            //   assume m, n >= 1

            int r = n % m;

            while (r != 0) {

                  n = m;
                  m = r;
                  r = n % m;
            }

            return m;
        }

                                          9
            Solución mas eficiente
Ejemplo: Probando datos de ingreso
String inputStr;
                                                            Primera lectura
                                                            Primera lectura
int       edad;

inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):");
edad        = Integer.parseInt(inputStr);


while (edad < 18 || edad > 90) {
       JOptionPane.showMessageDialog(null,
           “Se ingreso una edad no valida. Por favor vuelva a intentarlo");


       inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):");

       edad = Integer.parseInt(inputStr);
}

                                                              Segunda lectura
                                                              Segunda lectura


                                                                              10
Operadores cortos utiles
suma = suma + numero;   Es equivalente a     suma += numero;




         Operador           Uso            Significado
             +=         a += b;            a = a + b;
             -=         a -= b;            a = a – b;
             *=         a *= b;            a = a * b;
             /=         a /= b;            a = a / b;
             %=         a %= b;            a = a % b;

                                                           11
Tenga cuidado con los errores
 1.   Cuidado con el error “por uno”

 2.   Asegúrese que el cuerpo del loop contiene
      sentencias que eventualmente harán que el loop
      finalice

 3.   Si quiere ejecutar el cuerpo del loop N veces,
      entonces inicialice el contador en 0 y utilice una
      condicion que evalue contador <N, o inicialice el
      contador en 1 y evalue contador <=N



                                                           12
Loop Error #1 - Loop Infinito
                                             Error
                                             Error
 1
 1   int producto = 0;               Estas sentencias se
                                      Estas sentencias se
                                     ejecutaran por siempre.
                                      ejecutaran por siempre.
                                     La expresion boolena
                                      La expresion boolena
     while ( producto < 500000 ) {   nunca será falsa.
                                      nunca será falsa.
                                     Para solucionar el
                                      Para solucionar el
         product = product * 5;      problema producto debe
                                      problema producto debe
     }                               inicializarse en 11
                                      inicializarse en




 2
 2   int contador = 1;
                                              Error
                                              Error
     while ( contador != 10 ) {      La expresión boolena
                                      La expresión boolena
                                     nunca sera falsa.
                                      nunca sera falsa.
         contador = contador + 2;    Para solucionar el
                                      Para solucionar el
                                     problema count debe ser
                                      problema count debe ser
     }                               inicializado en 11
                                      inicializado en




                                                           13
Loop Error #2 – error por uno
       Objetivo : Ejecute el cuerpo del loop 10 veces
1
1       count = 1;                       2
                                         2   count = 1;
        while ( count < 10 ){                while ( count <= 10 ){
            . . .                                . . .
            count++;                             count++;
        }                                    }



3
3       count = 0;                       4
                                         4   count = 0;
        while ( count <= 10 ){               while ( count < 10 ){
            . . .                                . . .
            count++;                             count++;
        }                                    }



        1 y
        1           3 exiben el error por uno.
                    3
                                                                      14
La sentencia do-while
  int sum = 0, number = 1;


  do {

                             Estas sentencias son
                              Estas sentencias son
    sum = sum + number;      ejecutadas hasta que la
                              ejecutadas hasta que la
                             variable sum sea menor
                              variable sum sea menor
    number++;                ooigual que 100
                                igual que 100




  } while ( sum <= 100 );



                                                        15
Sintaxis do-while
      do
              <sentencias>
      while ( <expresion booleana> ) ;


      do {


           sum = sum + number;           Sentencias
                                          Sentencias
           number++;                     (loop body)
                                          (loop body)


      } while (   sum <= 100     );

      Expresion booleana
      Expresion booleana



                                                16
Flujo de Control do-while

      int sum = 0, number = 1
       int sum = 0, number = 1




      sum = sum + number
       sum = sum + number
      number++;
       number++;




                                 true
       sum <= 100
        sum <= 100


       false
                                        17
Bucle y Control de Media Repetición
   Bucle y Control de Media Repeticiόn puede ser
    utilizado para evaluar la condicion de terminacion
    de un bucle en medio del cuerpo del bucle.

   Es implementado utilizando las palabras
    reservadas while, if, and break.




                                                     18
Ejemplo: Bucle-y-MedioControl
String name;

while (true){

    name = JOptionPane.showInputDialog(null, “Tu nombre");

    if (name.length() > 0) break;

    JOptionPane.showMessageDialog(null, "Ingreso no
        valido." + “Debe ingresar al menos un caracter.");
}




                                                         19
Errores en Bucles-y-MedioControl
   Ponga atenciόn en dos cosas cuando utilice
    Bucles-y-MedioControl:
     El peligro de un bucle infinito. La expresión booleana
      del while es true, la cual siempre evaluará a true. Si
      olvidamos incluir una sentencia if para romper el
      bucle, terminaremos en un bucle infinito.
     Multiple  exit points. It is possible, although complex, to
      write a correct control loop with multiple exit points
      (breaks). It is good practice to enforce the one-entry
      one-exit control flow.


                                                              20
Bucle: Sentencia break (1/4)
 int i = 1;
 int sum = 0;
                                        sum is 21
 while (sum < 20) {
   sum += i;                            i is 7
   ++i;
 }
 System.out.println("sum is " + sum);
 System.out.println("i is " + i);

 int i = 1;
 int sum = 0;
 while (sum < 20) {
   sum += i;                            sum is 6
   if (sum % 2 == 0) break;             i is 3
   ++i;
 }
 System.out.println("sum is " + sum);
 System.out.println("i is " + i);
                                                    21
Bucle: Sentencia break (2/4)
 int i = 1;
 int sum = 0;
                                        sum es 15
 while ( true ) {
   sum += i;                            i es 5
   if (sum > 10) break;
                                        Note: Sin el break, es
   ++i;                                 un bucle infinito!
 }
 System.out.println("sum is " + sum);
 System.out.println("i is " + i);

 int i = 0;
 int sum = 0;                             Trate de
 while (sum <= 10) {                      evitar el uso
   ++i;                                   de break, a
   sum += i;                              menos que
 }                                        sea
 System.out.println("sum is " + sum);     necesario.
 System.out.println("i is " + i);

                                                            22
Bucle: Sentencia break (3/4)
 Random number = new Random();
 int i;
                                         i   is   43
 while (true) {                          i   is   2
   i = number.nextInt(100);              i   is   12
   System.out.println("i is " + i);      i   is   95
   if (i >= 80) break;
 }

 Random class will be discussed later.




                                                       23
Bucle: Sentencia break (4/4)
   break causa que el control salga del bucle mas interno
    en el que esta contenido..

     int a = 1;
     while (a < 5) {                         a   is   1,   b   is   1
       int b = 1;                            a   is   1,   b   is   2
       while (b < 5) {                       a   is   2,   b   is   1
         System.out.println("a is " + a
                                             a   is   2,   b   is   2
                     + ", b is " + b);
                                             a   is   3,   b   is   1
          if (b == 2) break;                 a   is   3,   b   is   2
          ++b;                               a   is   4,   b   is   1
         }
         ++a;                                a   is   4,   b   is   2
     }



                                                                        24
Bucle: Sentencia continue (1/2)
   Algunas veces podríamos querer ir inmediatamente a
    la siguiente iteracion, sin ejecutar el resto de las
    sentencias en el cuerpo del bucle.

   Esto puede ser realizado utilizando continue.

   Como break, continue solo causa que el control
    vaya a la siguiente iteracion en el bucle mas interno
    que lo contiene.




                                                            25
Bucle: Sentencia continue(2/2)
 int i = 0;                             i   is   1
                                        i   is   2
 while (i <= 6) {
   ++i;                                 i   is   4
   if (i == 3) continue;                i   is   5
   System.out.println("i is " + i);     i   is   6
 }                                      i   is   7

 int i = 1;
 int sum = 0;
 while (sum < 20) {
   sum += i;                            sum is 23
   if (sum % 2 == 0) continue;          i is 6
   ++i;
 }
 System.out.println("sum is " + sum);
 System.out.println("i is " + i);
                                                     26
Random Numbers (1/2)
   Random number generation is discussed in section 3.8 of
    your textbook.
   We learn another way here, using the Random class.
   Notes:
     Need to import java.util.*;
     Random( ): constructs a new random number generator
      Random whose seed is based on the current time.
     int nextInt(int n): returns the next pseudo-random, from the
      interval [0, 1, … n-1], uniformly distributed value of a Random
      object.
     Refer to the API specification for the complete description of class
      Random.



                                                                       27
Random Numbers (2/2)
import java.util.*;

public class Random1 {
  public static void main(String[] args) {

        Random num = new Random();

        for (int i=0; i<5; i++) {
          System.out.println("Next random number is "
                              + num.nextInt(100));
        }
    }                     Next   random   number   is   48
}                         Next   random   number   is   14
                          Next   random   number   is   89
                          Next   random   number   is   7
                          Next   random   number   is   44

                                                             28
Diálogo de Confirmación
   dialogo de confirmación puede ser utilizado para que el
    usuario elija si quiere seguir con la ejecución del programa
    o no.
     JOptionPane.showConfirmDialog(null,
            /*prompt*/         "Play Another Game?",
            /*dialog title*/    "Confirmation",
            /*button options*/ JOptionPane.YES_NO_OPTION);




                                                             29
Ejemplo: Diálogo de Confirmación
 boolean sigaJugando = true;
 int     seleccion;

 while (sigaJugando){

    //codigo que realiza un juego viene aqui
    // . . .

    seleccion = JOptionPane.showConfirmDialog(null,
                           “Quiere volver a jugar?",
                           "Confirmacion",
                           JOptionPane.YES_NO_OPTION);

    sigaJugando = (seleccion ==
 JOptionPane.YES_OPTION);
 }


                                                         30
Adicional

Preguntas de Examen
Considere el siguiente código
int i = 1;
while (i <= n) {
   if (i % n == 0) {
      ++i;
   }
}
  System.out.println(i);
(a) Cual es la salida si n es 0?
(b) Cual es la salida si n es 1?
(c) Cual es la salida si n es 3?


                                   32
Que retorna el siguiente método,
asumiendo que n es 12345?
           public static int metodoX(int n) {
             int sum = 0;
             while (n > 0) {
               sum += n % 100;
               n /= 100;
             }
             return sum;
           }
A.   9
B.   15
C.   69
D.   123
E.   168
                                                33
La sentencia for
   int i, sum = 0, number;


   for (i = 0; i < 20; i++) {


       number = scanner.nextInt( );
       sum = sum + number;


   }
                                                 Estas sentencias son
                                                  Estas sentencias son
                                                 ejecutadas 20 veces
                                                  ejecutadas 20 veces
                                                 ((i i= 0, 1, 2, … , ,19).
                                                       = 0, 1, 2, … 19).
   Utilizamos for cuando sabemos cuantas veces
   se va a realizar la repetición



                                                                             34
Syntax sentencia for
for ( <inicializacion>; <expresion booleana>; <incremento>   ){


                          <sentencias>
}
                              Expresión
                              Expresión
Inicializacion
 Inicializacion                                        Incremento
                                                        Incremento
                              Booleana
                               Booleana


    for (         i = 0   ;     i < 20    ;    i++           ) {


        number = scanner.nextInt();                  Sentencias
                                                      Sentencias
        sum = sum + number;                          (loop body)
                                                      (loop body)


    }

                                                                    35
false

                   true
                                        i i= 0;
                                           = 0;



                            i i< 20 ?
                               < 20 ?




 ber =
ber = . .. .. .; ;
 = sum + number;
                                                  Control Flow of for




= sum + number;




             ++;
          i i++;
  36
i++ or ++i?

for ( i = 0; i < 20; i++ ) {
    ...
}

                               Alguna diferencia?


for ( i = 0; i < 20; ++i ) {
    ...
                                   Aqui es lo mismo…
}                                  Solo cuando es parte
                                   de una expresion..si
                                   son diferentes



                                                          37
Compare for y while

  for ( Init ; Expression ; Increment )
      Action


  Init                    Si realmente odian utilizar WHILE
                          por alguna razon….
  while ( Expression )    pueden reescribirla
  {
      Action
      Increment
  }
                                                              38
Sentencia while

   //este programa realiza la suma de los 100
   primeros numeros


   int sum = 0, number = 1;


   while ( number <= 100 ) {


       sum    =   sum + number;


       number = number + 1;
   }



                                                39
Seguimiento de la ejecución (1/12)
                                     i   0
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");




                                             40
Seguimiento de la ejecución(2/12)
                                      i   0
 for (int i = 0; i < 3; ++i) {
   System.out.println("i es " + i);
 }

 System.out.println(“terminamos");




                                              41
Seguimiento de la ejecución(3/12)
                                         i     0
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0




                                                   42
Seguimiento de la ejecución(4/12)
                                         i     1
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0




                                                   43
Seguimiento de la ejecución(5/12)
                                         i     1
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0




                                                   44
Seguimiento de la ejecución(6/12)
                                          i    1
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamo");
                                     Output:

                                     i es 0
                                     i es 1




                                                   45
Seguimiento de la ejecución(7/12)
                                         i     2
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0
                                     i es 1




                                                   46
Seguimiento de la ejecución(8/12)
                                         i     2
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0
                                     i es 1




                                                   47
Seguimiento de la ejecución(9/12)
                                         i     2
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0
                                     i es 1
                                     i es 2




                                                   48
Seguimiento de la ejecución(10/12)
                                         i     3
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0
                                     i es 1
                                     i es 2




                                                   49
Seguimiento de la ejecución(11/12)
                                         i     3
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

                                     i es 0
                                     i es 1
                                     i es 2




                                                   50
Seguimiento de la ejecución(12/12)
                                               3
for (int i = 0; i < 3; ++i) {
  System.out.println("i es " + i);
}

System.out.println(“terminamos");
                                     Output:

 Utilzar siempre i dentro del loop   i es 0
                                     i es 1
                                     i es 2
                                     terminamos




                                                   51
Mas ejemplos
   1
   1   for (int i = 0; i < 100; i += 5)

                             i i= 0, 5, 10, … ,,95
                                = 0, 5, 10, … 95



   2
   2   for (int j = 2; j < 40; j *= 2)

                             j j= 2, 4, 8, 16, 32
                                = 2, 4, 8, 16, 32




   3
   3   for (int k = 100; k > 0; k--) )

                       k = 100, 99, 98, 97, ..., 1
                        k = 100, 99, 98, 97, ..., 1


                                                      52
Factorial
    Definition:
                      1      if n = 0
           n!= 
               1 × 2 ×  × n if n ≥ 1


     int nFactorial = 1;
     for (int i = 2; i <= n; ++i) {
         nFactorial *= i;
     }




                                         53
Alcance de Variable
   Considere:

    int valorActual = 2;

    for (int i = 0; i < 5; ++i) {
        System.out.println(valorActual);
        valorActual = valorActual* 2;
    }
    System.out.println("i is " + i);


 Que muestra valor actual al final?
 Que muestra i?
                                           54
For anidados
   Es cuando utilizamos un for dentro de otro for.




                                                      55
56
Generando la Tabla
        int precio;
        for (int ancho = 11; ancho <=20, ancho++){

                for (int largo = 5, largo <=25, largo+=5){
        INNER
OUTER




                    precio = ancho * largo * 19; //$19 x metro cuadrado
                    System.out.print (" " + precio);
                }
                //finalizada una fila se va a la siguiente
                System.out.println("");
        }




                                                                   57
For anidados (1/2)
                                              i is   0
for (int i = 0; i < 3; ++i) {
                                                 j   is   0
                                                 j   is   1
    System.out.println("i is " + i);
                                                 j   is   2
                                                 j   is   3
    for (int j = 0; j < 4; ++j) {
                                              i is   1
        System.out.println("   j is " + j);
                                                 j   is   0
    }
                                                 j   is   1
                                                 j   is   2
}
                                                 j   is   3
                                              i is   2
                                                 j   is   0
                                                 j   is   1
                                                 j   is   2
                                                 j   is   3
                                                              58
For anidados (2/2)
for (int i = 0; i < 3; ++i) {

    System.out.println("i is " + i);

    for (int j = 0; j < i; ++j) {
        System.out.println("   j is " + j);
    }

}



Cual es la salida?



                                              59
Fin Clase 6




              60

Más contenido relacionado

La actualidad más candente

Ejercicios cap 003
Ejercicios cap 003Ejercicios cap 003
Ejercicios cap 003Bleakness
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de javaFaral TF
 
AritméTica Del Computador
AritméTica Del ComputadorAritméTica Del Computador
AritméTica Del ComputadorPriscila
 
Compuertas logicass
Compuertas logicassCompuertas logicass
Compuertas logicassLuis Sanchez
 
Operaciones Con Funciones
Operaciones Con FuncionesOperaciones Con Funciones
Operaciones Con FuncionesAngel Carreras
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigoBrivé Soluciones
 
Interior, exterior y frontera de un conjunto
Interior, exterior y frontera de un conjuntoInterior, exterior y frontera de un conjunto
Interior, exterior y frontera de un conjuntowalexander03
 
Funciones (subprocesos) en pseint
Funciones (subprocesos) en pseintFunciones (subprocesos) en pseint
Funciones (subprocesos) en pseintErick Navarro
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesAndreina Trejo
 
Espacios vectoriales con producto interno
Espacios vectoriales con producto internoEspacios vectoriales con producto interno
Espacios vectoriales con producto internoAdamari Cortes
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbujaOscar Mora
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafosTERE FERNÁNDEZ
 
Ejercicios cap 009
Ejercicios cap 009Ejercicios cap 009
Ejercicios cap 009Bleakness
 
LI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer ordenLI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer ordenJosé A. Alonso
 

La actualidad más candente (20)

Ejercicios cap 003
Ejercicios cap 003Ejercicios cap 003
Ejercicios cap 003
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
AritméTica Del Computador
AritméTica Del ComputadorAritméTica Del Computador
AritméTica Del Computador
 
Compuertas logicass
Compuertas logicassCompuertas logicass
Compuertas logicass
 
Operaciones Con Funciones
Operaciones Con FuncionesOperaciones Con Funciones
Operaciones Con Funciones
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Lista circulares doblemente enlazadas
Lista circulares doblemente enlazadasLista circulares doblemente enlazadas
Lista circulares doblemente enlazadas
 
52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo52 ejercicios resueltos en pseudocodigo
52 ejercicios resueltos en pseudocodigo
 
Interior, exterior y frontera de un conjunto
Interior, exterior y frontera de un conjuntoInterior, exterior y frontera de un conjunto
Interior, exterior y frontera de un conjunto
 
Diapositivas de estructuras algebraicas
Diapositivas de estructuras algebraicasDiapositivas de estructuras algebraicas
Diapositivas de estructuras algebraicas
 
Funciones (subprocesos) en pseint
Funciones (subprocesos) en pseintFunciones (subprocesos) en pseint
Funciones (subprocesos) en pseint
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Espacios vectoriales con producto interno
Espacios vectoriales con producto internoEspacios vectoriales con producto interno
Espacios vectoriales con producto interno
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Leyes+de+conjuntos
Leyes+de+conjuntosLeyes+de+conjuntos
Leyes+de+conjuntos
 
Ejercicios resueltos grafos
Ejercicios resueltos grafosEjercicios resueltos grafos
Ejercicios resueltos grafos
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Ejercicios cap 009
Ejercicios cap 009Ejercicios cap 009
Ejercicios cap 009
 
LI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer ordenLI-T6: Sintaxis y semántica de la lógica de primer orden
LI-T6: Sintaxis y semántica de la lógica de primer orden
 
Division algebraica # 02
Division algebraica # 02Division algebraica # 02
Division algebraica # 02
 

Destacado

Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en JavaJdcaste
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacionSERCOMPFAST
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos ForRichard Robalino
 
Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de controlBoOriz Hero
 
Estructuras repetitivas - pseudocodigo
Estructuras repetitivas - pseudocodigoEstructuras repetitivas - pseudocodigo
Estructuras repetitivas - pseudocodigoRosbelia Balza
 
Estructuras de Control y Repetición
Estructuras de Control y RepeticiónEstructuras de Control y Repetición
Estructuras de Control y Repeticiónrcad
 
ESTRCTURAS DE REPETICION
ESTRCTURAS DE REPETICIONESTRCTURAS DE REPETICION
ESTRCTURAS DE REPETICIONlesviagarcia
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKJorge Iván Meza Martínez
 
Operadores lógicos
Operadores lógicosOperadores lógicos
Operadores lógicosDiego RoJas
 
Sentencias de selección en Java
Sentencias de selección en JavaSentencias de selección en Java
Sentencias de selección en JavaJdcaste
 
Estructuras de repetición (1)
Estructuras de repetición (1)Estructuras de repetición (1)
Estructuras de repetición (1)Fredy Torres
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++die_dex
 
ORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOWilmer Quintero
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En Cpainni
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlLic_Vera
 
Estructuras de ciclo: while,for,do while
Estructuras de  ciclo: while,for,do whileEstructuras de  ciclo: while,for,do while
Estructuras de ciclo: while,for,do whileAlfredo Huamani Escobar
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosIrving Muñoz
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 

Destacado (20)

Sentencias de repetición en Java
Sentencias de repetición en JavaSentencias de repetición en Java
Sentencias de repetición en Java
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacion
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos For
 
Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de control
 
Estructuras repetitivas - pseudocodigo
Estructuras repetitivas - pseudocodigoEstructuras repetitivas - pseudocodigo
Estructuras repetitivas - pseudocodigo
 
Estructuras de Control y Repetición
Estructuras de Control y RepeticiónEstructuras de Control y Repetición
Estructuras de Control y Repetición
 
ESTRCTURAS DE REPETICION
ESTRCTURAS DE REPETICIONESTRCTURAS DE REPETICION
ESTRCTURAS DE REPETICION
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTK
 
Operadores lógicos
Operadores lógicosOperadores lógicos
Operadores lógicos
 
Sentencias de selección en Java
Sentencias de selección en JavaSentencias de selección en Java
Sentencias de selección en Java
 
Estructuras de repetición (1)
Estructuras de repetición (1)Estructuras de repetición (1)
Estructuras de repetición (1)
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
ORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIOORDENAMIENTO POR INTERCAMBIO
ORDENAMIENTO POR INTERCAMBIO
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En C
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Funciones de entrada y salida
Funciones de entrada y salidaFunciones de entrada y salida
Funciones de entrada y salida
 
Estructuras de ciclo: while,for,do while
Estructuras de  ciclo: while,for,do whileEstructuras de  ciclo: while,for,do while
Estructuras de ciclo: while,for,do while
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
ESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVASESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVAS
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 

Similar a Sentencias de Repeticion (20)

Exposicion
ExposicionExposicion
Exposicion
 
Exposicion
ExposicionExposicion
Exposicion
 
Sentencia de control
Sentencia de controlSentencia de control
Sentencia de control
 
Estructura repetitiva
Estructura repetitivaEstructura repetitiva
Estructura repetitiva
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
 
UsodelasestructurasrepetitivasRivera &G
UsodelasestructurasrepetitivasRivera &GUsodelasestructurasrepetitivasRivera &G
UsodelasestructurasrepetitivasRivera &G
 
Estructura
EstructuraEstructura
Estructura
 
01 diagramas nassi-schneiderman
01 diagramas nassi-schneiderman01 diagramas nassi-schneiderman
01 diagramas nassi-schneiderman
 
Algunos algoritmos1
Algunos algoritmos1Algunos algoritmos1
Algunos algoritmos1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Estructura Repetitivas
Estructura RepetitivasEstructura Repetitivas
Estructura Repetitivas
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Progra hojas
Progra hojas Progra hojas
Progra hojas
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Jyoc java-cap13 recursividad
Jyoc java-cap13 recursividadJyoc java-cap13 recursividad
Jyoc java-cap13 recursividad
 
Pr109 while
Pr109 whilePr109 while
Pr109 while
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINT
 
Sesión 09 Fund Programación
Sesión 09 Fund ProgramaciónSesión 09 Fund Programación
Sesión 09 Fund Programación
 
Clase 6
Clase 6Clase 6
Clase 6
 
Laboratorios1
Laboratorios1Laboratorios1
Laboratorios1
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (19)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Sentencias de Repeticion

  • 2. Clase 6: Sentencias de Repetición Después de haber estudiado este capítulo usted podrá:  Implementar sentencias de repetición en su programa utilizando while, do-while y for.  Implementar sentencias de repetición utilizando: while, do-while y for.  Implementar sentencias de control genéricas  Realizar sentencias de repetición anidadas  Elegir la sentencia de repetición adecuada según el problema  Generar números aleatorios  Lograr que el usuario interactúe con la máquina en una sesión SI-NO para continuar ejecutando el programa 2
  • 3. Definición  Las sentencias de repetición son un bloque de código que son ejecutadas por un cierto número de veces hasta que se cumpla una condición.  Repeticiones controladas por contador: terminan la ejecución del bloque después que este ha sido ejecutado por un número de veces determinado  Repeticiones controladas por centinela: termina la ejecución del bloque después que un valor diseñado como centinela ha sido encontrado.  Las sentencias de repetición son llamadas LOOP o BUCLE. 3
  • 4. Sentencia while //este programa realiza la suma de los 100 primeros números int sum = 0, number = 1; while ( number <= 100 ) { sum = sum + number; Estas sentencias son Estas sentencias son ejecutadas mientras que ejecutadas mientras que la variable number sea la variable number sea number = number + 1; menor ooigual que 100 menor igual que 100 } System.out.print(“La Suma es: “ + suma); 4
  • 5. Sintaxis para la sentencia while while ( <expresión booleana> ) { <sentencia 1> <sentencia 1> <sentencia n> } Expresión Booleana Expresión Booleana while ( number <= 100 ) { sum = sum + number; Sentencias Sentencias (loop body) (loop body) number = number + 1; } 5
  • 6. Flujo de Control while int sum = 0, number = 1 int sum = 0, number = 1 number = number + 1; sum = sum + number; number = number + 1; sum = sum + number; number <= 100 ? number <= 100 ? false true 6
  • 7. Mas Ejemplos Sigue sumando 1 1 int sum = 0, number = 1; Sigue sumando números 1, 2, 3, … números 1, 2, 3, … hasta que la variable hasta que la variable while ( sum <= 1000000 ) { sum sea mayor aa sum sea mayor 1,000,000. 1,000,000. sum = sum + number; number = number + 1; } 2 2 int producto = 1, numero = 1, Calcula el producto de Calcula el producto de contador = 20, ultimoNumero; los 20 primeros enteros los 20 primeros enteros ultimoNumero = 2 * contador - 1; while (numero <= ultimoNumero) { producto = producto * numero; numero = numero + 2; } 7
  • 8. Encontrando el Maximo Comun Divisor public int mcdBruteforce(int m, int n) { // assume m, n >= 1 int menor = Math.min(m, n); int mcd; int i = 1; while (i <= menor) { if (m%i == 0 && n%i == 0) { mcd = i; } i++; } return mcd; } 8 Aproximación directa
  • 9. Encontrando el Maximo Comun Divisor public int gcd(int m, int n) { // no importa si n o m // es mayor, este metodo; // trabaja bien // // assume m, n >= 1 int r = n % m; while (r != 0) { n = m; m = r; r = n % m; } return m; } 9 Solución mas eficiente
  • 10. Ejemplo: Probando datos de ingreso String inputStr; Primera lectura Primera lectura int edad; inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):"); edad = Integer.parseInt(inputStr); while (edad < 18 || edad > 90) { JOptionPane.showMessageDialog(null, “Se ingreso una edad no valida. Por favor vuelva a intentarlo"); inputStr = JOptionPane.showInputDialog(null,“Su edad (entre 18 y 90):"); edad = Integer.parseInt(inputStr); } Segunda lectura Segunda lectura 10
  • 11. Operadores cortos utiles suma = suma + numero; Es equivalente a suma += numero; Operador Uso Significado += a += b; a = a + b; -= a -= b; a = a – b; *= a *= b; a = a * b; /= a /= b; a = a / b; %= a %= b; a = a % b; 11
  • 12. Tenga cuidado con los errores 1. Cuidado con el error “por uno” 2. Asegúrese que el cuerpo del loop contiene sentencias que eventualmente harán que el loop finalice 3. Si quiere ejecutar el cuerpo del loop N veces, entonces inicialice el contador en 0 y utilice una condicion que evalue contador <N, o inicialice el contador en 1 y evalue contador <=N 12
  • 13. Loop Error #1 - Loop Infinito Error Error 1 1 int producto = 0; Estas sentencias se Estas sentencias se ejecutaran por siempre. ejecutaran por siempre. La expresion boolena La expresion boolena while ( producto < 500000 ) { nunca será falsa. nunca será falsa. Para solucionar el Para solucionar el product = product * 5; problema producto debe problema producto debe } inicializarse en 11 inicializarse en 2 2 int contador = 1; Error Error while ( contador != 10 ) { La expresión boolena La expresión boolena nunca sera falsa. nunca sera falsa. contador = contador + 2; Para solucionar el Para solucionar el problema count debe ser problema count debe ser } inicializado en 11 inicializado en 13
  • 14. Loop Error #2 – error por uno  Objetivo : Ejecute el cuerpo del loop 10 veces 1 1 count = 1; 2 2 count = 1; while ( count < 10 ){ while ( count <= 10 ){ . . . . . . count++; count++; } } 3 3 count = 0; 4 4 count = 0; while ( count <= 10 ){ while ( count < 10 ){ . . . . . . count++; count++; } } 1 y 1 3 exiben el error por uno. 3 14
  • 15. La sentencia do-while int sum = 0, number = 1; do { Estas sentencias son Estas sentencias son sum = sum + number; ejecutadas hasta que la ejecutadas hasta que la variable sum sea menor variable sum sea menor number++; ooigual que 100 igual que 100 } while ( sum <= 100 ); 15
  • 16. Sintaxis do-while do <sentencias> while ( <expresion booleana> ) ; do { sum = sum + number; Sentencias Sentencias number++; (loop body) (loop body) } while ( sum <= 100 ); Expresion booleana Expresion booleana 16
  • 17. Flujo de Control do-while int sum = 0, number = 1 int sum = 0, number = 1 sum = sum + number sum = sum + number number++; number++; true sum <= 100 sum <= 100 false 17
  • 18. Bucle y Control de Media Repetición  Bucle y Control de Media Repeticiόn puede ser utilizado para evaluar la condicion de terminacion de un bucle en medio del cuerpo del bucle.  Es implementado utilizando las palabras reservadas while, if, and break. 18
  • 19. Ejemplo: Bucle-y-MedioControl String name; while (true){ name = JOptionPane.showInputDialog(null, “Tu nombre"); if (name.length() > 0) break; JOptionPane.showMessageDialog(null, "Ingreso no valido." + “Debe ingresar al menos un caracter."); } 19
  • 20. Errores en Bucles-y-MedioControl  Ponga atenciόn en dos cosas cuando utilice Bucles-y-MedioControl:  El peligro de un bucle infinito. La expresión booleana del while es true, la cual siempre evaluará a true. Si olvidamos incluir una sentencia if para romper el bucle, terminaremos en un bucle infinito.  Multiple exit points. It is possible, although complex, to write a correct control loop with multiple exit points (breaks). It is good practice to enforce the one-entry one-exit control flow. 20
  • 21. Bucle: Sentencia break (1/4) int i = 1; int sum = 0; sum is 21 while (sum < 20) { sum += i; i is 7 ++i; } System.out.println("sum is " + sum); System.out.println("i is " + i); int i = 1; int sum = 0; while (sum < 20) { sum += i; sum is 6 if (sum % 2 == 0) break; i is 3 ++i; } System.out.println("sum is " + sum); System.out.println("i is " + i); 21
  • 22. Bucle: Sentencia break (2/4) int i = 1; int sum = 0; sum es 15 while ( true ) { sum += i; i es 5 if (sum > 10) break; Note: Sin el break, es ++i; un bucle infinito! } System.out.println("sum is " + sum); System.out.println("i is " + i); int i = 0; int sum = 0; Trate de while (sum <= 10) { evitar el uso ++i; de break, a sum += i; menos que } sea System.out.println("sum is " + sum); necesario. System.out.println("i is " + i); 22
  • 23. Bucle: Sentencia break (3/4) Random number = new Random(); int i; i is 43 while (true) { i is 2 i = number.nextInt(100); i is 12 System.out.println("i is " + i); i is 95 if (i >= 80) break; } Random class will be discussed later. 23
  • 24. Bucle: Sentencia break (4/4)  break causa que el control salga del bucle mas interno en el que esta contenido.. int a = 1; while (a < 5) { a is 1, b is 1 int b = 1; a is 1, b is 2 while (b < 5) { a is 2, b is 1 System.out.println("a is " + a a is 2, b is 2 + ", b is " + b); a is 3, b is 1 if (b == 2) break; a is 3, b is 2 ++b; a is 4, b is 1 } ++a; a is 4, b is 2 } 24
  • 25. Bucle: Sentencia continue (1/2)  Algunas veces podríamos querer ir inmediatamente a la siguiente iteracion, sin ejecutar el resto de las sentencias en el cuerpo del bucle.  Esto puede ser realizado utilizando continue.  Como break, continue solo causa que el control vaya a la siguiente iteracion en el bucle mas interno que lo contiene. 25
  • 26. Bucle: Sentencia continue(2/2) int i = 0; i is 1 i is 2 while (i <= 6) { ++i; i is 4 if (i == 3) continue; i is 5 System.out.println("i is " + i); i is 6 } i is 7 int i = 1; int sum = 0; while (sum < 20) { sum += i; sum is 23 if (sum % 2 == 0) continue; i is 6 ++i; } System.out.println("sum is " + sum); System.out.println("i is " + i); 26
  • 27. Random Numbers (1/2)  Random number generation is discussed in section 3.8 of your textbook.  We learn another way here, using the Random class.  Notes:  Need to import java.util.*;  Random( ): constructs a new random number generator Random whose seed is based on the current time.  int nextInt(int n): returns the next pseudo-random, from the interval [0, 1, … n-1], uniformly distributed value of a Random object.  Refer to the API specification for the complete description of class Random. 27
  • 28. Random Numbers (2/2) import java.util.*; public class Random1 { public static void main(String[] args) { Random num = new Random(); for (int i=0; i<5; i++) { System.out.println("Next random number is " + num.nextInt(100)); } } Next random number is 48 } Next random number is 14 Next random number is 89 Next random number is 7 Next random number is 44 28
  • 29. Diálogo de Confirmación  dialogo de confirmación puede ser utilizado para que el usuario elija si quiere seguir con la ejecución del programa o no. JOptionPane.showConfirmDialog(null, /*prompt*/ "Play Another Game?", /*dialog title*/ "Confirmation", /*button options*/ JOptionPane.YES_NO_OPTION); 29
  • 30. Ejemplo: Diálogo de Confirmación boolean sigaJugando = true; int seleccion; while (sigaJugando){ //codigo que realiza un juego viene aqui // . . . seleccion = JOptionPane.showConfirmDialog(null, “Quiere volver a jugar?", "Confirmacion", JOptionPane.YES_NO_OPTION); sigaJugando = (seleccion == JOptionPane.YES_OPTION); } 30
  • 32. Considere el siguiente código int i = 1; while (i <= n) { if (i % n == 0) { ++i; } } System.out.println(i); (a) Cual es la salida si n es 0? (b) Cual es la salida si n es 1? (c) Cual es la salida si n es 3? 32
  • 33. Que retorna el siguiente método, asumiendo que n es 12345? public static int metodoX(int n) { int sum = 0; while (n > 0) { sum += n % 100; n /= 100; } return sum; } A. 9 B. 15 C. 69 D. 123 E. 168 33
  • 34. La sentencia for int i, sum = 0, number; for (i = 0; i < 20; i++) { number = scanner.nextInt( ); sum = sum + number; } Estas sentencias son Estas sentencias son ejecutadas 20 veces ejecutadas 20 veces ((i i= 0, 1, 2, … , ,19). = 0, 1, 2, … 19). Utilizamos for cuando sabemos cuantas veces se va a realizar la repetición 34
  • 35. Syntax sentencia for for ( <inicializacion>; <expresion booleana>; <incremento> ){ <sentencias> } Expresión Expresión Inicializacion Inicializacion Incremento Incremento Booleana Booleana for ( i = 0 ; i < 20 ; i++ ) { number = scanner.nextInt(); Sentencias Sentencias sum = sum + number; (loop body) (loop body) } 35
  • 36. false true i i= 0; = 0; i i< 20 ? < 20 ? ber = ber = . .. .. .; ; = sum + number; Control Flow of for = sum + number; ++; i i++; 36
  • 37. i++ or ++i? for ( i = 0; i < 20; i++ ) { ... } Alguna diferencia? for ( i = 0; i < 20; ++i ) { ... Aqui es lo mismo… } Solo cuando es parte de una expresion..si son diferentes 37
  • 38. Compare for y while for ( Init ; Expression ; Increment ) Action Init Si realmente odian utilizar WHILE por alguna razon…. while ( Expression ) pueden reescribirla { Action Increment } 38
  • 39. Sentencia while //este programa realiza la suma de los 100 primeros numeros int sum = 0, number = 1; while ( number <= 100 ) { sum = sum + number; number = number + 1; } 39
  • 40. Seguimiento de la ejecución (1/12) i 0 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); 40
  • 41. Seguimiento de la ejecución(2/12) i 0 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); 41
  • 42. Seguimiento de la ejecución(3/12) i 0 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 42
  • 43. Seguimiento de la ejecución(4/12) i 1 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 43
  • 44. Seguimiento de la ejecución(5/12) i 1 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 44
  • 45. Seguimiento de la ejecución(6/12) i 1 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamo"); Output: i es 0 i es 1 45
  • 46. Seguimiento de la ejecución(7/12) i 2 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 46
  • 47. Seguimiento de la ejecución(8/12) i 2 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 47
  • 48. Seguimiento de la ejecución(9/12) i 2 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2 48
  • 49. Seguimiento de la ejecución(10/12) i 3 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2 49
  • 50. Seguimiento de la ejecución(11/12) i 3 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: i es 0 i es 1 i es 2 50
  • 51. Seguimiento de la ejecución(12/12) 3 for (int i = 0; i < 3; ++i) { System.out.println("i es " + i); } System.out.println(“terminamos"); Output: Utilzar siempre i dentro del loop i es 0 i es 1 i es 2 terminamos 51
  • 52. Mas ejemplos 1 1 for (int i = 0; i < 100; i += 5) i i= 0, 5, 10, … ,,95 = 0, 5, 10, … 95 2 2 for (int j = 2; j < 40; j *= 2) j j= 2, 4, 8, 16, 32 = 2, 4, 8, 16, 32 3 3 for (int k = 100; k > 0; k--) ) k = 100, 99, 98, 97, ..., 1 k = 100, 99, 98, 97, ..., 1 52
  • 53. Factorial  Definition:  1 if n = 0 n!=  1 × 2 ×  × n if n ≥ 1 int nFactorial = 1; for (int i = 2; i <= n; ++i) { nFactorial *= i; } 53
  • 54. Alcance de Variable  Considere: int valorActual = 2; for (int i = 0; i < 5; ++i) { System.out.println(valorActual); valorActual = valorActual* 2; } System.out.println("i is " + i);  Que muestra valor actual al final?  Que muestra i? 54
  • 55. For anidados  Es cuando utilizamos un for dentro de otro for. 55
  • 56. 56
  • 57. Generando la Tabla int precio; for (int ancho = 11; ancho <=20, ancho++){ for (int largo = 5, largo <=25, largo+=5){ INNER OUTER precio = ancho * largo * 19; //$19 x metro cuadrado System.out.print (" " + precio); } //finalizada una fila se va a la siguiente System.out.println(""); } 57
  • 58. For anidados (1/2) i is 0 for (int i = 0; i < 3; ++i) { j is 0 j is 1 System.out.println("i is " + i); j is 2 j is 3 for (int j = 0; j < 4; ++j) { i is 1 System.out.println(" j is " + j); j is 0 } j is 1 j is 2 } j is 3 i is 2 j is 0 j is 1 j is 2 j is 3 58
  • 59. For anidados (2/2) for (int i = 0; i < 3; ++i) { System.out.println("i is " + i); for (int j = 0; j < i; ++j) { System.out.println(" j is " + j); } } Cual es la salida? 59

Notas del editor

  1. CS1101X Programming Methodology
  2. CS1101X Programming Methodology
  3. CS1101X Programming Methodology
  4. CS1101X Programming Methodology
  5. CS1101X Programming Methodology
  6. CS1101X Programming Methodology
  7. CS1101X Programming Methodology
  8. CS1101X Programming Methodology
  9. CS1101X Programming Methodology
  10. CS1101X Programming Methodology
  11. CS1101X Programming Methodology
  12. CS1101X Programming Methodology
  13. CS1101X Programming Methodology
  14. CS1101X Programming Methodology
  15. CS1101X Programming Methodology
  16. CS1101X Programming Methodology
  17. CS1101X Programming Methodology
  18. CS1101X Programming Methodology
  19. CS1101X Programming Methodology
  20. CS1101X Programming Methodology
  21. CS1101X Programming Methodology
  22. CS1101X Programming Methodology
  23. CS1101X Programming Methodology
  24. CS1101X Programming Methodology
  25. CS1101X Programming Methodology
  26. CS1101X Programming Methodology
  27. CS1101X Programming Methodology
  28. CS1101X Programming Methodology
  29. CS1101X Programming Methodology
  30. CS1101X Programming Methodology
  31. CS1101X Programming Methodology
  32. CS1101X Programming Methodology
  33. CS1101X Programming Methodology
  34. CS1101X Programming Methodology
  35. CS1101X Programming Methodology
  36. CS1101X Programming Methodology
  37. CS1101X Programming Methodology
  38. CS1101X Programming Methodology
  39. CS1101X Programming Methodology
  40. CS1101X Programming Methodology
  41. CS1101X Programming Methodology
  42. CS1101X Programming Methodology
  43. CS1101X Programming Methodology
  44. CS1101X Programming Methodology
  45. CS1101X Programming Methodology