Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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
/*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 */
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()); }
}
-
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:
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()); }
}
-
Cierto, tienes razón. Deberé esforzarme en redactar un código mas legible. Muchas gracias!
-
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.
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());
}
}
-
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,
-
Esta es mi solución al ejercicio plateado, creo que es la más corta de las que vi por aquí:
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++;
}
}
}