Java - Hacer que me imprima los numero entero de 5 en 5 por linea

 
Vista:

Hacer que me imprima los numero entero de 5 en 5 por linea

Publicado por carlos (25 intervenciones) el 05/11/2018 09:41:18
el ejercicio es el siguiente
Crea un programa Java que imprima los enteros desde 1000 hasta 2000, debiéndose mostrar un máximo de cinco enteros por línea.
Mi duda principal es como hacer que imprima los numero de veces concreta por linea sin que se el cuento la vieja
sin poner if else anidados entre 1000 y 1005 etc..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer que me imprima los numero entero de 5 en 5 por linea

Publicado por Kabuto (1378 intervenciones) el 05/11/2018 12:08:21
Es decir, quieres encontrar una solución distinta de esta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
 
    int cont = 1;
    for (int i = 1000; i <= 2000; i++)
    {
        if (cont < 5)
        {
            System.out.print(i + " ");
            cont++;
        }
        else
        {
            System.out.println(i);
            cont = 1; //Reiniciamos contador
        }
    }
 
}


Pues por más que le doy vueltas, no se me ocurre ninguna.
Y es que, por muy de "alto nivel" que sea un lenguaje, hay que explicarle como hacer las cosas.

Java (y cualquier lenguaje) a la hora de imprimir datos en pantalla, solo sabe mostrarlos y ya está.
Si queremos que haga un salto de línea o no, y cúando queremos que lo haga... se lo tenemos que explicar de algún modo. Y el modo más simple es usar un condicional, en este caso, un if else
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer que me imprima los numero entero de 5 en 5 por linea

Publicado por Kabuto (1378 intervenciones) el 05/11/2018 12:18:34
Bueno, mira, se me ha ocurrido otra forma, innecesariamente complicada pero que evita usar if else

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args) {
 
    int enteros = 1000;
    String linea = "";
 
    do {
        for (int i = 1; i <= 5 && enteros <= 2000; i++)
        {
            linea += enteros + " "; //Construimos la linea entero a entero, hasta tener 5 maximo
            enteros++;
        }
        System.out.println(linea); //Mostramos la linea de 5 enteros
        linea = ""; //Reiniciamos la linea
    }while(enteros <= 2000);
 
}


Pero vamos, en realidad seguimos usando condicionales. Lo que no hacia antes con el condicional if else, lo estoy haciendo ahora con el condicional del bucle for
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer que me imprima los numero entero de 5 en 5 por linea

Publicado por Billy Joel (874 intervenciones) el 05/11/2018 13:43:53
En Java para imprimir usualmente utilizamos
1
System.out.println();
System.out.println(); implica un salto de línea al final de lo impreso.

También tenemos la opción
1
System.out.print();

Hay mas opciones pero vamos a centrarnos en System.out.print();
El problema lo he resuelto así:
1
2
3
4
5
6
7
public void imprimir5PorLinea() {
    int inicio = 1000;
    int fin = 2000;
    for (int i = inicio; i <= fin; i++) {
        System.out.print((i % 5 == 0 ? "\n" : "\t") + i);
    }
}

Aquí he hecho uso del operador ternario, es como un if-else en una sola línea.
Es como si hubiese hecho esto
1
2
3
4
5
if(i % 5 == 0){
    System.out.print("\n" + i);
} else {
    System.out.print("\t" + i);
}

Todo eso en una sola línea XD

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar