2
respuestas

Multiplos de tres

Comparto mi código, sencillo,talvez depronto con una falla que la variable no debería ser contador y si un nombre que sea referente a lo que se busca como multiplo. //Código para imprimir los Múltiplos de 3 hasta el 100 public class MultiplosDeTres {

public static void main(String[] args) {

    for(int contador = 0; contador <= 100; contador += 3) {
        System.out.print(contador);
        System.out.print(" ");
    }
}

}

2 respuestas

¡Hola Jaime! Gracias por aportarnos con tu solución al ejercicio de "Múltiplos de 3" ¡Funciona muy bien!

Ahora bien, noté que cada vez que recorres el valor de múltiplo, no solo haces el cálculo para saber si el valor es múltiplo de 3, sino que también imprimes el valor, cada vez. Eso no suena muy productivo, suena más bien repetitivo. Observándolo bien, creo que podemos mejorar un poquito tu código para que en vez de imprimir cada vez que detecte un valor múltiplo de 3, solo imprima 1 vez en toda la aplicación. De esta forma mejoramos el rendimiento del algoritmo.

Por ejemplo, podríamos hacer lo siguiente:

public class testMultiplos {

    public static void main(String[] args) {
        String mensaje = ""; // Declara e inicializa String vacío

        // Recorre de 1 a 100; Calcula múltiplo de 3; Almacena el valor en mensaje
        for(int i = 1; i <= 100; i++){
            mensaje += (i % 3 == 0) ? "" + i + "\n": "";
        }

        System.out.println(mensaje); // Imprime mensaje
    }
}

Entonces, en esta otra solución en vez de declarar e inicializar un valor entero como 0, lo que hice fue declarar un valor de tipo String; una cadena, y la inicialicé como vacía.

Dentro del bloque for, utilicé un operador cuaternario. ¿Qué son los operadores cuaternarios? Son una forma rápida y más elegante para fabricar una sentencia homóloga al "if-else".

Su sintaxis es la siguiente:

( condición ) ? cumple : no cumple.

Entonces, si la condición entre paréntesis se cumple, se ejecuta lo que viene después del signo de interrogación, de lo contrario se ejecuta lo que viene después de los dos puntos.

Y en este caso en particular, si se cumple la condición de que el valor de i es múltiplo de 3, entonces ese valor se concatena al mensaje que hemos declarado más arriba como vacío. De lo contrario, a la cadena le concatenamos un valor vacío.

Y ya está. Solo hacemos esa operación al recorrer el valor de i 100 veces. Finalmente, solo imprimimos 1 vez por pantalla el valor de mensaje, que resulta ser la concatenación de todos los números múltiplos de 3.

Lo que hemos hecho aquí se llama "Refactorización". Vale decir, modificar el código para aplicar buenas prácticas o mejorar rendimiento, sin alterar el resultado del código. Ahora ya no es tan repetitivo, y el código se ve más elegante. ¡Yupi!

¡Espero esto te sirva para expandir tus conocimientos!

Gracias Jorge, una forma más y por consiguiente un aprendizaje más sobre tu código. Un abrazo