[ Foro de Java ]

Añadir enumeración a bucle Java

25-Oct-2020 16:09
Invitado (Jose)
3 Respuestas

Hola a todos:

Gracias por vuestra ayuda. Estoy empezando en esto de la programación y para resolver un ejercicio me piden, entre otras cosas, que enumere las filas de un bucle.


Me piden que escriba un programa en Java que solicite por teclado un número de filas (entre 1 y 10) y que genere una cadena de caracteres con una escalera del siguiente tipo: en cada fila habrá una cantidad de números igual al número de filas en las que se esté. Se empezará contando desde el 1 en la primera fila y ese contador se irá "arrastrando" en cada fila sucesiva. Al principio de cada fila se debe escribir el número de fila, dos puntos y la secuencia del contador incrementándose. Si se introduce una cantidad de filas que no se encuentra en el rango permitido (1-10, ambos inclusive), el programa volverá a solicitar la cantidad de filas hasta que ésta sea correcta el número de veces que sea necesario. Una vez que se haya construido la cadena con la escalera debes mostrarla por pantalla como resultado final del programa.

Os enseño como lo he planteado:

int filas;
       int contador = 1;
       int cantidadActual= 0;
       String resultado="";

do  {
       System.out.print("Introduzca número de filas (1-10): ");
       filas=teclado.nextInt();
       contador ++;

       }while ((filas<0)||(filas>10));

       for (int i=1; i<=filas;i++) {

           System.out.println("");

           for (int j=1; j<=i;j++) {
           cantidadActual = cantidadActual + 1;
           resultado = resultado + cantidadActual + " ";

       }
           resultado =  resultado + "\n";
       }


El problema es que no sé enumerar las filas y es lo último que me queda para resolver el ejercicio. Os agradecería mucho si me podéis echar una mano porque no sé como plantearlo sin cargarme lo que ya he hecho.

Es decir, con ese código me sale por pantalla:

1
2 3
4 5 6
7 8 9 10

Mientras que lo que necesito es:

1: 1
2: 2 3
3: 4 5 6
4: 7 8 9 10


Gracias de antemano,

Jose


25-Oct-2020 19:42
Nacho Cabanes (+75)

Te basta con mostrar el número de fila:

for (int i=1; i<=filas;i++) {

   System.out.print(i);
   // ...


25-Oct-2020 21:22
Invitado (Jose)

Si hago lo que me dices:

do  {
       System.out.print("Introduzca número de filas (1-10): ");
       filas=teclado.nextInt();
       contador ++;
       
       }while ((filas<0)||(filas>10));
       
       for (int i=1; i<=filas;i++) {
       System.out.println(i);

           for (int j=1; j<=i;j++) {

           cantidadActual = cantidadActual + 1;
           resultado = resultado + cantidadActual + " ";
           
       }
       resultado = resultado + "\n";

       }  


       System.out.println(resultado);


Me imprime esto por pantalla:

Introduzca número de filas (1-10): 5
1
2
3
4
5

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15


08-Dec-2020 12:31
Invitado (Rev)

Quizás ya lo hayas solucionado, pero yo estoy haciendo este mismo ejercicio y estaba super atrancado y ver este post me ha ayudado muchísimo ya que lo estaba enfocando de manera errónea.

Lo que hice al final para arreglar la enumeración de las filas fue:
 for (int i=1; i<=filas;i++) {
resultado = resultado+i+":";   <---------------- añadir esta línea
      System.out.println(i);

          for (int j=1; j<=i;j++) {

          cantidadActual = cantidadActual + 1;
          resultado = resultado + cantidadActual + " ";
         
      }
      resultado = resultado + "\n";

      }  






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)