Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: BryanGeek en 07 de Mayo 2014, 16:34

Título: Solucion CU00659B - "Java desde cero" bucles while mostrar letras
Publicado por: BryanGeek en 07 de Mayo 2014, 16:34
Con la única intención de apoyar, aquí otra solución con el fin de que puedan detectar en que parte su código presente posibles errores

Citar
/*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 TestDelDoWhile {  //Prueba del do ... while curso aprenderaprogramar.com
    public static void main (String [ ] Args) {
        System.out.println("Ingrese una palabra");
        String entrada = "";
        Scanner entradaScanner = new Scanner(System.in);
        entrada = entradaScanner.nextLine();
        int contador = 0 ;
        int i=-1;
        int j=0;
        do {   System.out.println ("Letra " + (contador+1)+ ": " +entrada.substring(i+1,j+1) );
                   contador += 1;
                   i++;j++;
        } while (contador<entrada.length());     }   
}
Título: Re:Solucion CU00659B - "Java desde cero"
Publicado por: César Krall en 08 de Mayo 2014, 22:33
Hola, el código es correcto. Le veo una cosa mejorable: el código además de funcionar hay que intentar que sea lo más claro y entendible posible. En este caso por ejemplo no veo necesidad de usar una variable i, se podría resolver usando sólo la variable j (lo cual es más simple, cuanto más simple mejor). También hubiera sido posible solucionarlo con un bucle for. Código:

Código: [Seleccionar]
import java.util.Scanner;
public class TestDelDoWhile {  //Prueba del do ... while curso aprenderaprogramar.com
    public static void main (String [ ] Args) {
        System.out.println("Ingrese una palabra");
        String entrada = "";
        Scanner entradaScanner = new Scanner(System.in);
        entrada = entradaScanner.nextLine();
        int contador = 0 ;
        int j=0;
        do {   System.out.println ("Letra " + (contador+1)+ ": " +entrada.substring(j,j+1) );
                   contador += 1;
                   j++;
        } while (contador<entrada.length());     }   
}
Título: Re:Solucion CU00659B - "Java desde cero"
Publicado por: BryanGeek en 08 de Mayo 2014, 22:43
Cierto, tienes razón. Deberé esforzarme en redactar un código mas legible. Muchas gracias!
Título: Re:Solucion CU00659B - "Java desde cero"
Publicado por: heseos en 10 de Mayo 2014, 06:09
Hola aqui mi codigo, Algo a tomar en cuenta chicos en el ejercicio dice Un bucle while, me pregunte xk no se podía con do while y dude un poco creo deberían aclarar bien eso, ya que aunque ambos son bucles while no es lo mismo. Gracias y buena suerte.

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

public class While{
    public static void main (String []args){
        System.out.print("Introducir texto aqui: ");
        String miScaner = new Scanner (System.in).nextLine();
        int i = 0;
        int j = 0;
        do {
            System.out.println("Letra "+(i+1)+": "+ miScaner.substring(j,j+1));
            i += 1;
            j++;

        } while (i<miScaner.length());

    }

}
Título: Re:Solucion CU00659B - "Java desde cero"
Publicado por: César Krall en 10 de Mayo 2014, 22:07
Si nos atenemos a responder a lo que pide el enunciado debería hacerse con un while y no con un do while, que aunque tienen similitudes como bien dices no son lo mismo. Saludos,
Título: Re:Solucion CU00659B - "Java desde cero" bucles while mostrar letras
Publicado por: niffxd en 28 de Octubre 2017, 20:30
Esta es mi solución al ejercicio plateado, creo que es la más corta de las que vi por aquí:

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

public class While{
   
    public static void main(String[] args){
        System.out.print("Introduzca la cadena: ");
        String miEntrada = "";
        Scanner miEscaner = new Scanner(System.in);
        miEntrada = miEscaner.nextLine();
        int i = 0;
        while(i != miEntrada.length()){
            System.out.println("Letra " + (i+1) + ": " + miEntrada.substring(i,i+1));
            i++;
        }
    }
}