locales (en un bloque)

Cuando el bloque es el cuerpo de un método, también se denominan “variables de método” o “variables automáticas”.

Son aquellas que se se declaran en un bloque.

Se crean cuando se declaran y se destruyen cuando el bloque termina. Cada vez que se ejecuta el bloque se crea una nueva variable.

Si existen simultáneamente varias llamadas al bloque, existirán simultáneamente varias variables, todas diferentes entre sí. Esto ocurre en métodos recursivos.

 

EJEMPLO

Búsqueda binaria (de diccionario).

Dado un array ordenado de enteros, encontrar en qué posición se encuentra en número N.

Devuelve la posición de N en el array. Devuelve -1 si N no está en el array.

public int busca (int n, int[] datos) {

  return busquedaBinaria(n, datos, 0, datos.length);

}

 

// busca en el rango a..z

private int busquedaBinaria(int n, int[] datos, int a, int z) {

  if (a > z)

    return -1;

  int medio = (a + z) / 2;

  int valor = datos[medio];

  if (valor == n)

    return medio;                                   // encontrado

  if (valor < n)

    return busquedaBinaria(n, datos, a, medio-1);   // a la izquierda

  else

    return busquedaBinaria(n, datos, medio+1, z);   // a la derecha

}            

 

Temas relacionados

175. Variables [variables] (concepto)