Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: 5378453 en 13 de Mayo 2015, 02:17

Título: bucle while true y break en Java tiene sentido usarlo y cuándo (CU00659B)
Publicado por: 5378453 en 13 de Mayo 2015, 02:17
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;   
            }
        }
    }
}
Título: Re:Ejemplo break: salir de un bucle. Ejercicios resueltos (CU00659B)
Publicado por: RaGa 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!
Título: Re:Ejemplo break: salir de un bucle. Ejercicios resueltos (CU00659B)
Publicado por: Alex Rodríguez 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