Java desde Cero – Estructura de Control de Flujo – Bucles 1

Cuando hacemos uso de un programa existen o lo creamos podemos observar que existen operaciones que se han de repetir, por ejemplo imaginemos que nuestro programa tenga que imprimir en consola el conteo de 1 a 100, si lo hiciéramos de forma convencional tendríamos que:

System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
...

Esto resulta ineficiente, al ser una operación que es repetitiva debería poder realizarse a través de una estructura de control de flujo, y estos son los bucles, los bucles también llamados iteradores,  permiten la ejecución reiterada de una sentencia o sentencias, ahora bien, los bucles pueden ser de dos tipos, determinados o indeterminados, los determinados se definen básicamente porque conocemos cuántas veces se han de repetir las operaciones (o cuántas iteraciones se han de realizar) mientras que los indeterminados no sabemos con exactitud cuando han de finalizar ya que dependen de una condición booleana (verdadera o falsa) para continuar o finalizar su ejecución. Java posee 3 estructuras de control de flujo de ejecución que son bucles, estos son la estructura For, While y Do While, vamos realizar una revisión del bucle “For“.

La estructura de un bucle for es la siguiente:

for (inicialización; finalización; incremento) {
       sentencias
}
  • Inicialización: Es una expresión, es de donde ha de iniciar el conteo de las iteraciones, podemos utilizar una variable que ya ha sido declarada e inicializada previamente o podemos hacerlo en esta sección (por ejemplo iniciamos en que a=1).
  • Finalización: Es una expresión booleana que se evalúa su condición de verdadero o falso en cada iteración en función a sí el valor de inicialización ya alcanzó un valor final específico (por ejemplo evaluamos si a <100) y mientras no se haya alcanzado dicho valor las iteraciones han de continuar.
  • Incremento: Es invocada luego de la iteración y posterior evaluación, aquí se define la política de incremento del valor de inicialización (por ejemplo hacemos que a tenga un incremento de 1 en 1 o podemos hacer que vaya de 2 en 2).

Nuestro anterior objetivo era el conteo del 1 al 100, entonces esto en la estructura “for” se implementa de la siguiente forma:

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

Observemos que hemos declarado e inicializado la variable “i” en la estructura, recuerda que en java siempre debes definir el tipo de dato, un aspecto a tomar en cuenta es que  el alcance de la variable “i” solo estará circunscrito a la estructura y no existe más allá de ella, sé que aún no hemos hablado del alcance de una variable, pero por el momento piensa en el alcance como la existencia de una variable en un programa, con esto quiero decir que fuera de la estructura la variable “i” no existe y podría marcar un error si es que pretendemos hacer uso de ella. Luego definimos que su terminación será cuando “i” ya no cumpla la condición de ser menor que 100, finalmente establecemos la política de incremento que está dada por un aumento de “i” de 1 en 1.

Ahora bien, en Java la inicialización donde se define la variable, no se puede hacer por fuera, si no nosotros hiciéramos:

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

Esto nos marcaría un error; para poder hacer uso de una variable que ya está definida, lo que debemos de hacer es dejar el espacio en blanco de su inicialización:

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

Hecha esta salvedad, veamos un ejemplo en el que le preguntamos al usuario que se ejecute un conteo la cantidad de veces que el desee  y que el defina la política de incremento.

import java.util.Scanner;

public class Bucles_1 {

public static void main(String[] args) {
  Scanner entrada=new Scanner(System.in);

  System.out.println("¿Cuántos números desea contar?");
  int cantidad=entrada.nextInt();
  System.out.println("¿Desde dónde desea iniciar?");
  int inicio=entrada.nextInt();
  System.out.println("¿De cuánto en cuánto desea avanzar?");
  int avance=entrada.nextInt();
  entrada.close();

  for(int i=0;i<cantidad;i++) {
    System.out.println(inicio);
    inicio+=avance;
  }
  }

}

¿Qué hemos hecho?, hemos importado la clase Scanner y hemos hecho las consultas a través de la consola, cada entrada de teclado que responde a las preguntas, se almacena en las variables, nos interesa exactamente la cantidad de veces que se ha de iterar, el cómo se avance y de donde se inicie es casi por así decirlo que será implementado mediante un artilugio, luego de ello implementamos la estructura FOR hacemos que se imprima el primer valor que se ha registrado y luego hacemos que se incremente en función del avance que se ha requerido.

El bucle FOR también puede ser usado con cadenas de texto, es decir las cadenas de texto pueden ser iterados a través  de su longitud, la longitud está determinada por la cantidad de caracteres o espacios en blanco que existan dentro de las comillas que la contienen, por ejemplo: “hola” tiene una longitud de 4 ya que son 4 caracteres que la componen, para determinar la longitud de una cadena que es de la Clase String, debemos hacer uso de uno de sus métodos que se define como length. Entonces podemos implementarlo de la siguiente forma, vamos a hacer que se imprima cada uno de los caracteres de la cadena “hola”, para ello también haremos uso del método chartA(index) que nos devuelve el caracter del indice indicado, debemos saber que la cadena si bien es cierto su longitud es de 4 su índice siempre inicia desde el valor cero, es decir que el índice está yendo de 0 a 3 tal que el índice 0 es “h”, 1 es “o” y así sucesivamente, entonces:

String saludo="hola";
for(int i=0;i<saludo.length();i++) {
    System.out.println(saludo.charAt(i));
}

De este modo, hemos visto las posibilidades del uso del bucle for.

 

 

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s