Autor Tema: Java bucle while true mala práctica como condición mal diseño CU00659B  (Leído 4800 veces)

luis sanz

  • Sin experiencia
  • *
  • Mensajes: 49
    • Ver Perfil
Código propuesto como respuesta al ejercicio:

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

public class Bucle
{
    public static void main(String[] args)
    {
        System.out.println("Ingrese un texto:");
        String teclado="";
        Scanner escaner=new Scanner(System.in);
        teclado=escaner.nextLine();
       
        int longitudPalabra=teclado.length();
        int c=0;
        while(true)
        {
         
            String letra="";
            letra=teclado.substring(c,c+1);
            System.out.println("Letra "+(c+1)+" :"+letra);
            c=c+1;
            if(c==longitudPalabra)
            {break;}
           
        }
       
    }
}
« Última modificación: 17 de Junio 2017, 18:58 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:CU00659B AAP JAVA - BUCLE WHILE
« Respuesta #1 en: 12 de Agosto 2015, 17:34 »
Hola Luis:

Estuve analizando tu ejercicio y veo que cumple con la consigna del ejercicio. Sin embargo tenemos que revisar un punto importante.

Utilizas un bucle while cuya condición es 'true'.

Es decir que el bucle while(true) será infinito hasta que se encuentre la sentencia break.

Bueno, he de decirte que esto no conforma una buena práctica, no corresponde a un buen diseño de bucle.

Siempre trataremos de resolver el problema evitando tener que salir del bucle a través de break.

Siempre intentaremos salir del bucle while cuando deje de cumplirse la condición entre sus paréntesis.

Para este caso particular la condición de abandonar el while lo podemos relacionar con la longitud de la palabra ingresada por teclado.

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

public class Bucle
{
    public static void main(String[] args)
    {
        System.out.println("Ingrese un texto:");
        String teclado="";
        Scanner escaner=new Scanner(System.in);
        teclado=escaner.nextLine();
       
        int longitudPalabra=teclado.length();
        int c=0;
        while(c < longitudPalabra)
        {
         
            String letra="";
            letra=teclado.substring(c,c+1);
            System.out.println("Letra "+(c+1)+" :"+letra);
            c=c+1;
           
        }
       
    }
}

Analízalo y cualquier duda lo seguimos revisando.
« Última modificación: 26 de Agosto 2015, 09:52 por César Krall »

 

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".