Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: rubens23 en 13 de Mayo 2015, 09:22

Título: Java Tipos de bucles. Ciclo for. Operadores incremento ++ -- Ejercicio CU00658B
Publicado por: rubens23 en 13 de Mayo 2015, 09:22
Tipos de bucles Java. Bucle for. Operadores ++ y --. Sentencia break.

Código: [Seleccionar]
import java.util.Scanner;
public class Separar{
    public static void main (String [ ] args){
        System.out.println("Por favor, introduzca una palabra para deletrearla");
        String palabra = "";
        Scanner cadenascan = new Scanner(System.in);
        palabra = cadenascan.nextLine();
        int contador = 0;
        for (int i = 0; i < palabra.length(); i++){
           contador = contador+1;
            System.out.println("Letra " +contador+ " = " +palabra.substring(0+i,1+i));
        }
    }
}
Título: Re:Entrega nº58 del curso"Aprender programación Java desde cero" Ejercicio CU00658B
Publicado por: Lorenzo31 en 13 de Mayo 2015, 14:35
Buenas rubens lo miro...

Vale el ejercicio está correcto, hace lo que se pide y entendiste el substring perfectamente.

Te hago dos apreciaciones a nivel lógico que yo veo, a simple vista.
 
Primera: palabra.substring(0+i,1+i)    sumar 0 entiendo que lo haces para diferenciar del +1 y verlo tu más claro pero a nivel lógico todo lo que suma 0 es igual al otro valor, es decir 0 + i = i   
     palabra.substring(i,1+i)

Segunda: esta ya es algo más personal, no importante, el propio int i = 0 ya es un contador inicializado a 0, una linea antes tu creas int contador = 0;

dentro del bucle lo vas aumentando una unidad, fijate que la variable i hace lo mismo exactamente. Supongo que pusiste el contador porque la i empezaba en 0 y tu querias que una variable se iniciara a 1 sin afectar al substring, solución que yo haría;

for (int i = 0; i < palabra.length(); i++){
         //  contador = contador+1;  <--- eliminar esta linea
            System.out.println("Letra " + (i+1)  + " = " +palabra.substring(i,i+1));
        }  /*añadir 1 a la i para ahorrarte un nuevo contador y no afectar al substring*/


La estructura y idea estupenda, y al final lo que te comento es un simple contador que no afecta demasiado, pero te doy la alternativa como idea.

Un saludo