Autor Tema: identificar código muerto o que nunca ocurrirá while y do while en java CU00659B  (Leído 2465 veces)

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Hola de nuevo, aquí otro ejercicio, el CU00659B del manual para aprender a programar en Java desde cero:

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class Deletrear {
   
    //atributos
    public String entradaTeclado;
   
    public static void main (String [ ] args) {
       
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
       
        System.out.println ("introduzca palabra para deletrear");
       
        String entradaTeclado = "";
                       
        entradaTeclado = entradaEscaner.nextLine ();
       
        int i = 0;
       
        while (i<entradaTeclado.length()) {
           
            System.out.println ("letra " + i + ": " + entradaTeclado.substring (i, i+1));
               
            i++;
           
            if (i == entradaTeclado.length()) { break;}
        }
    }
}


Bueno aquí me surge la curiosidad, se que la última linea de código " if (i == entradaTeclado.length()) { break;}" no es necesaria, ya que probé el programa sin ella y funciona, mi pregunta es: ¿hasta que punto es interesante completar o ahorrarse lineas de código como esta?

Sin más, agradecer vuestra colaboración y apoyo de antemano

Nos seguimos leyendo  ;)
« Última modificación: 10 de Julio 2016, 17:27 por Alex Rodríguez »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:(CU00659B) while y do while en java
« Respuesta #1 en: 01 de Julio 2016, 13:06 »
Buenos días, umadara.

El otro ejercicio bien resuelto. El mismo comentario como la entrega anterior, quedaría más curioso si empezaran la impresión con: "Letra 1:".

Sobre tu duda que si es necesaria la instrucción: "if (i == entradaTeclado.length()) { break;}" o no. La instrucción "while" significa "mientras" pasa algo, que haga las instrucciónes que has puesto entre los corchetes. Si ya se ha cumplido esta condición ya no es "mientras" y el bucle no continuará, por lo tanto no te es necesario poner la segunda condicional: "if (i == entradaTeclado.length()) { break;}".

Saludos.

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Re:(CU00659B) while y do while en java
« Respuesta #2 en: 03 de Julio 2016, 00:50 »
Hola Umadara. También veo bien resuelto el ejercicio.

El condicional para forzar el break, en tu código, nunca ocurrirá.

Como bien comentó dimiste, mientras el condicional del while sea cierto (true) seguirán realizándose las instrucciones que escribiste y cuando "i<entradaTeclado.length()" deje de ser afirmativo finalizará.

El segundo condicional sólo ocurrirá cuando sea "i == entradaTeclado.length()" pero por la condición del while la variable i nunca llegará a ese valor.

Saludos,
Edu.
« Última modificación: 10 de Julio 2016, 17:26 por Alex Rodríguez »

 

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".