Autor Tema: bucle while true y break en Java tiene sentido usarlo y cuándo (CU00659B)  (Leído 11788 veces)

5378453

  • Principiante
  • **
  • Mensajes: 56
    • Ver Perfil
    • Mugiwara no Fansub
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando un bucle while, el método length de la clase String y el método substring de la clase String, muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “ave” debe mostrar:

Letra 1: a
Letra 2: v
Letra 3: e

Código: [Seleccionar]
import java.util.Scanner;

public class tedtDo
{
    public static void main(String[]args){
        System.out.println("Introduce una Cadena:");
        String entradaTeclado = "";
        Scanner entradaEscanner = new Scanner(System.in);
        entradaTeclado = entradaEscanner.nextLine();
        int i=0;
        int m=0;
        while(true){
            System.out.println(entradaTeclado.substring(m,i+1));
            i++;
            m++;
            if(i==entradaTeclado.length()){
             break;   
            }
        }
    }
}
« Última modificación: 13 de Mayo 2015, 11:22 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Ejemplo break: salir de un bucle. Ejercicios resueltos (CU00659B)
« Respuesta #1 en: 13 de Mayo 2015, 03:27 »
Hola 5378453!

Antes que nada no olvides las convenciones que hemos de seguir como programadores, se ha explicado ya en otros hilos: el nombre de la clase debe comenzar con letra mayúscula, a diferencia de los nombres de métodos y parámetros que inician con letra minúscula.

El código que has escrito funciona y cumple con la consigna planeada por el ejercicio.
De todos modos he de decirte que si bien existe la opción de salir de un bucle while a través de  break, trataremos de evitar la salida de esta forma. Siempre es aconsejable que la salida del bucle sea por la condición false.

Te propongo que examines el siguiente código:

Código: [Seleccionar]
import java.util.Scanner;

public class TestWhile{

    public static void main (String[] args){
        System.out.println("Ingrese una palabra:");
        Scanner teclado = new Scanner(System.in);
        String valorTeclado = teclado.nextLine();
       
        int contador = 0;
       
        while (contador!=valorTeclado.length()){
            System.out.println("Letra "+(contador+1)+" : "+valorTeclado.substring(contador,contador+1));
            contador++;
        }
       
    }
   
}

Fíjate que la salida del bucle se da por una condición false del while.
Además hay una optimización del código al declarar solo un atributo tipo int y no dos.

Analízalo y si tienes una consulta pues acá estamos para ayudarte!

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejemplo break: salir de un bucle. Ejercicios resueltos (CU00659B)
« Respuesta #2 en: 13 de Mayo 2015, 11:21 »
Hola totalmente de acuerdo con lo comentado por RaGa. Añadir además que una condición como while(true) prácticamente no se usa nunca cuando se está programando. Unicamente se usa a veces por ejemplo para poner ejemplos en un curso, pero while(true) equivale a "repite indefinidamente" y esto no debe utilizarse excepto si sabemos muy bien por qué hacerlo. En este ejercicio no debe usarse ni while(true) ni break.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".