Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Zikem10 en 01 de Agosto 2014, 04:26

Título: Ejercicio CU00659B while, substring, length java
Publicado por: Zikem10 en 01 de Agosto 2014, 04:26
Creo me es mas facil el uso de for que de while,ya que la condiciones se hace desde un principio y parece menos confuso asi.

Código: [Seleccionar]
//Programa deletreo Usando Scanner porque se piden datos por teclado, , usando un bucle While y los metods substring y length
//Programa Hecho por Osvaldo Maciel 31 Julio 2014
//Ejercicio CU00659B


import java.util.Scanner;

public class DeletreoWhile{

    public static void main (String [] args){
    String palabraTeclado="";
   
        System.out.println("Escribe una Palabra");
        Scanner entradaScanner=new Scanner(System.in);
        palabraTeclado=entradaScanner.nextLine();//Aqui queda almacenado lo que se escribe en teclado
        int i=0;
        while(i<(palabraTeclado.length())){//aqui se obtiene el largo de la palabra que se escribe en teclado
     
        String letra=palabraTeclado.substring(i,i+1);//aqui digo saca letra donde se encuetre i
           i++;//incrementa en uno i
             System.out.println("letra:"+""+i+" "+letra);
        if (i==(palabraTeclado.length())){
           
             break;}
            }//cierre de while
     
           
    }//cierre main
   
}//cierre clase
Título: Re:Ejercicio CU00659B
Publicado por: dongo en 01 de Agosto 2014, 15:44
Hola, bueno he revisado tu ejercicio y lo veo bien.
//-------------------------------------------//
edito: He repasado mas a fondo la condición del bucle y me he fijado en este if:

Código: [Seleccionar]
if (i==(palabraTeclado.length())){
       
             break;}
           


Esta condición te sobra totalmente, ya que si te fijas el bucle solo se repetirá mientras "i" sea menor que el tamaño de la cadena, por lo tanto i nunca jamas será igual al tamaño de la cadena dentro de ese bucle y la condición son 3 lineas de código inútil....

//-------------------------------------------------------------// Fin de la edición

Lo que comentas de que te es mas sencillo un bucle for que uno while.

Por mi experiencia, cada bucle tiene su utilidad, y hay casos en el que podremos usar ambos, y casos en los que solo podremos usar un while.

El for se utiliza principalmente cuando se conoce o es posible conocer el numero de iteracciones a realizar. Por ejemplo:


Ahora imagínate que necesitamos un programa que nos pida por teclado una serie de cadenas de texto, sin saber a priori cuantas cadenas meterá el usuario, sino que en cada petición le preguntaremos si quiere meter una cadena mas, el usuario responderá si o no y se realizara una iteracción mas o no dependiendo de la respuesta. En este caso no nos valdría un bucle for a no ser que le preguntáramos al usuario al principio cuantas cadenas quiere meter, pero alomejor el usuario no lo sabe tampoco... En fin en este caso tendríamos que usar un bucle while, ya que seguir en el bucle dependerá de si el usuario responde si, o no.

Así que resumiendo, recomiendo el bucle for cuando tenemos alguna forma de averiguar el numero de iteracciones y usaremos el while cuando el seguir en el bucle o salir dependa de un valor true o false.

Un saludo y tranquilo, que poco a  poco te irás dando cuenta de cuando usar un bucle for, un for extendido, uno while o un do { ... } while( condicion )
Título: Re:Ejercicio CU00659B
Publicado por: Zikem10 en 08 de Agosto 2014, 04:16
Muchas Gracias Dongo, tienes la facilidad de explicar claramente las dudas y errores que tenemos, veo que no tienes experiencia pero en realidad  creo y si , tienes muy claros los conceptos, este es mi primer curso de programacion es por ello que me surgen muchas dudas.
Saludos y gracias por tu apoyo
Título: Re:Ejercicio CU00659B
Publicado por: dongo en 08 de Agosto 2014, 13:22
jeje bueno ziken las dudas son normales, es lo mas común del mundo, no tengo experiencia en el foro. Pero en java llevo mas de 7 años y aun así también a mi me surgen dudas, es mas ahora estoy liado con un par de frameworks y hay cosas de las que no entiendo ni papa, pero bueno esto es así, la programación es un mundo muy extenso, y para estar al día hay que trabajar a diario.

Sigue estudiando, sobre todo te recomiendo que entiendas muy bien los conceptos básicos y si no entiendes alguno, pregunta sin problemas. En unos meses a buen ritmo puedes tener un nivel bastante aceptable y empezar a hacer cosas mas complejas.

Bueno un saludo y a PICAR CÓDIGO!!