Objetivo:
Reconocer  la aplicación de los ciclos en el lenguaje seleccionado.
Al finalizar la clase los estudiantes estarán en capacidad de:
Definir los casos para los cuales son útiles la aplicación de los ciclos.
Reconocer las formas básicas de ciclos que ofrece el lenguaje seleccionado.

Los ciclos, bucles, lazos o iteradores

La forma de repetir un conjunto de instrucción un determinado número de veces o basados en que se cumpla una condición son los llamados ciclos. 

Mientras - while

Se diferencia del para en que este es más universal en el sentido que solo se preocupa por evaluar una expresión   y mientras dicha expresión sea verdadera se encarga de repetir el bloque delimitado en el mientras. La expresión pude ser un valor lógico, una función que retorne un valor lógico, una expresión relacional o una expresión lógica.

La expresión debe estar entre un gran paréntesis, esto es similar a lo que se hizo en su momento con el if.

Si se llega a colocar el punto y coma al final del while no muestra error, pero no funciona como un ciclo dado que no tiene en cuenta al bloque y lo ejecuta como parte de la secuencia del programa y no como parte del ciclo. Esto ya lo experimentamos con el ciclo for. 

Forma general de un ciclo mientras que se repite ascendentemente.

   Double p=10.0;

    while(p<20){

        System.out.println(p);

        p+=0.5;

    }

Forma general de un ciclo mientras descendente

    Double n=500.0;

    while(n>90){

        System.out.println(n);

        n=n-0.02;

    }

Forma general de un ciclo mientras que el usuario lo desee.

    int contador=0;

    String seguir="s";

    while(seguir.equals("s")||seguir.equals("S")){

        System.out.println("Veces que se ha repetido "+contador++);

        //operaciones que se desean repetir

        seguir=JOptionPane.showInputDialog("Desea continuar oprima s");

    }

Forma gráfica sugerida para convertir un for a un while.


Concepto adicional de Java.

Java es un lenguaje orientado a objetos, el cual permite realizar operaciones especiales sobre las cadenas de textos denominadas String. Para ejecutar una operación sobre los textos se realiza el siguiente procedimiento:

texto.funcion(parametros)
texto: puede ser una variable, una expresión o cualquier cosa que este representada por el String
funcion: es el nombre de la operación que se desea realizar sobre el texto
parametros: esto depende de la función pueden ser cero uno o n.
Estas son las funciones más comunes para los textos.

substring(int carcaterInicial, int caracaterFinal) retorna un pedazo del texto.
Ejemplo:
String t="Hola amigos";
System.out.println(t.substring(1, 4)); //retorna ola

trim() retorna un texto sin espacios en blanco a delante y atrás de la cadena dada.
Ejemplo:
String texto="   Vamos   muy   bien   ";
System.out.println(texto.substring(1, 4));
texto=texto.trim();
System.out.println(texto);

toLowerCase() retorna el texto en minúscula.
Ejemplo:
String dato="Este es mi dato";
dato=dato.toLowerCase();
System.out.println(dato);

toUpperCase() retorna el texto en mayúsculas
Ejemplo:
String info="Este es mi dato";
info=info.toUpperCase();
System.out.println(info);

Mediante la observación identifique otras funciones de los textos ... explore  replaceAll, replaceFirst, split ...

Para generar un número entero randómico entre [cero y el limite).
    Random rnd = new Random();
    int valor = rnd.nextInt(20); //20 es el límite dado.
    System.out.println(""+valor);


Ejercicios.

1. Construir un algoritmo que calcula la resistencia total de n resistencias conectadas en paralelo. El usuario entra cuántas resistencias desea ingresar y el sistema captura los n datos y calcula la resistencia total.

2. Leer dos números enteros, calcular la multiplicación de estos dos números mediante la operación de sumas sucesivas.

3. Leer dos números enteros, calcular la división entera del primer número entre el segundo, mediante la operación de restas sucesivas.

4. Leer dos números enteros, calcular el primero número elevado al segundo, mediante la técnica de sumas sucesivas.

5. Construir un programa que simule el lanzamiento de un dado. Como aun no sabemos hacer el movimiento en la GUI, aplicaremos lo siguiente. 6 Campos de texto, en los cuales el usuario no puede escribir. Cada campo con un número entre 1 y 6 cada campo representa una cara del dado y por tanto hay que asignarle un color diferente. La idea es que al oprimir un botón denominado lanzar el sistema rote alumbrando de color amarillo un elemento y en el cual se detenga es el número en que terminó el dado.

6. Construir un programa que lea un número, sin importar el número de dígitos, el límite será el dado por la capacidad de las variables long. El sistema colocará en rojo el fondo del campo de texto en el cual se leyó el número sí este es un número que lástima, lo colocará en verde si es un número palíndromo y en amarillo si no es ninguno de los dos anteriores. Al iniciar el proceso de verificación, el campo se colocará en blanco. Un número que lastima es el que le falto 1 o le sobra 1 para ser palíndromo.