Discusión:Programación en Java/Sentencia while

De Wikilibros, la colección de libros de texto de contenido libre.
Ir a la navegación Ir a la búsqueda

Comentar únicamente que el código de muestra para while es incorrecto. Para realizar realmente el paso de decimal a binario haría falta dar la vuelta al String. Por tanto faltaría este código, una vez salido del while .... }

StringBuilder sb = new StringBuilder(binario);

binario= sb.reverse().toString();

System.out.println(binario);

....

Te agradezco el comentario. Al leerlo inmediatamente ejecuté el código y el resultado me dio bien. Por lo que no entiendo porque es incorrecto. La instrucción clave del algoritmo es
binario = decimal % 2 + binario;
la variable binario contiene el resultado. Como verás, tengo explicado el mecanismo en el capítulo Estructuras de iteración
El primer dígito de la derecha contiene el primer resultado de la división. Si el número es par este bit es 0, si en impar es 1. Luego el segundo bit de la derecha es el resultado de la división y así sucesivamente. Hasta llegar al último bit, que siempre es 1.
Si tendría que dar vuelta el número binario, simplemente invierto los operandos. Sería de esta manera :
binario = binario + decimal % 2;
Es mas sencillo que crear objetos y trabajar con las propiedades de un StringBuilder. A parte sería incorrecto dar como ejemplo la creación de un objeto a esta parte del curso, en donde no se ha explicado todavía. Pero como siempre, puedo meter la pata. Te agradecería, si no estoy en lo cierto, que vuelvas a escribir un comentario. Saludos.--Pirenne (consultas) 15:53 26 may, 2005 (UTC)