Autor Tema: Ejercicio CU00659B while, substring, length java  (Leído 4089 veces)

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Ejercicio CU00659B while, substring, length java
« 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
« Última modificación: 31 de Agosto 2014, 10:59 por Alex Rodríguez »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:Ejercicio CU00659B
« Respuesta #1 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:

  • Recorrer una cadena --> Se puede usar un for porque el numero de iteracciones es igual al tamaño de la cadena.
  • Recorrer una lista de elementos --> Se puede usar porque el numero de iteracciones es igual al numero de elementos
  • Un numero fijo --> Pues si tenemos quee realizar un numero fijo de iteracciones es facil usar un for

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 )
« Última modificación: 01 de Agosto 2014, 15:55 por dongo »

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Re:Ejercicio CU00659B
« Respuesta #2 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

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:Ejercicio CU00659B
« Respuesta #3 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!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".