Java - Ciclo que repita un String

 
Vista:
Imágen de perfil de Geraldine
Val: 53
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ciclo que repita un String

Publicado por Geraldine (25 intervenciones) el 28/05/2018 06:27:53
Buenas noches querida comunidad! Tengo el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package Pago_Gastos;
import java.util.Scanner;
 
public class DiaPagoMayor {
    //Atributos:
    static Scanner teclado = new Scanner(System.in);
 
    public static void main(String[] args) {
        //Solicitamos la cantidad de dias a procesar:
        System.out.print("Ingrese la cantidad de dias: ");
        int cantDias = teclado.nextInt();
 
        int[] vector = new int[cantDias];
        int gastomayor = 0, gastoTotal = 0, dia = 0;
 
        String[] strDias = new String[7];
        strDias[0] = "Lunes";
        strDias[1] = "Martes";
        strDias[2] = "Miercoles";
        strDias[3] = "Jueves";
        strDias[4] = "Viernes";
        strDias[5] = "Sabado";
        strDias[6] = "Domingo";
 
        //Creamos un ciclo for para repetir los datos segun la cantidad de dias:
        for (int i = 0; i < cantDias; i++){
           System.out.print("Ingrese los gastos del dia " + strDias[i] + ": " );
            vector[i] = teclado.nextInt();
        }
 
        for (int i = 0; i < cantDias; i++){
            System.out.println(vector[i]);
            gastoTotal += vector[i];
             if (vector[i] > gastomayor){
                gastomayor = vector[i];
                dia = i;
             }
        }
        System.out.println("El mayor gasto fue de " + gastomayor + " del dia " + strDias[dia] );
        System.out.println("El gasto total fue de: " + gastoTotal );
    }
 
}

Resulta que al ingresar un numero mayor a 7 el String[] strDias no se vuelve a repetir, queria saber como solucionar eso ya que la idea seria que empezara con el lunes y terminara en lunes... o bien si coloco 10 que empiece en lunes y termine el ciclo en miercoles
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
sin imagen de perfil

Ciclo que repita un String

Publicado por Xibhu (19 intervenciones) el 28/05/2018 11:15:27
Es un problema más o menos común, en vez de utilizar de "x" número a "y" número, tienes que hacerlo cíclico, esto se consigue con una fórmula, operando con el % (módulo, resto de una división). Búscalo, por ahí. La forma resumida en que esto trabaja es que tu tienes una cantidad fija de elementos, en este caso 7 (de 0 a 6) y sea el número que sea en de entrada, incluso sea mayor de 6, este se "reinicia" y vuelve a 0.
Haz pruebas para que veas los resultados que te van dando, no recuerdo exactamente como era, pero algo por el estilo de i=x%y ó i=i%x
y eso lo colocas en lugar del i++ en el bucle for de la línea 26
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de kingk
Val: 247
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ciclo que repita un String

Publicado por kingk (108 intervenciones) el 28/05/2018 15:16:24
1
2
3
4
for (int i = 0; i < cantDias; i++){
   System.out.print("Ingrese los gastos del dia " + strDias[i%7] + ": " );
    vector[i] = teclado.nextInt();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Geraldine
Val: 53
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ciclo que repita un String

Publicado por Geraldine (25 intervenciones) el 29/05/2018 02:52:13
Eres el mejor!! Ahora si me corre bien el programa, muchisimas gracias :D

Por si alguno ve la entrada y le interesa el codigo completo aqui esta!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package Pago_Gastos;
import java.util.Scanner;
 
public class DiaPagoMayor {
    //Atributos:
    static Scanner teclado = new Scanner(System.in);
 
    public static void main(String[] args) {
        //Solicitamos la cantidad de dias a procesar:
        System.out.print("Ingrese la cantidad de dias: ");
        int cantDias = teclado.nextInt();
 
        int[] vector = new int[cantDias];
        int gastomayor = 0, gastoTotal = 0, dia = 0;
 
        String[] strDias = new String[7];
        strDias[0] = "Lunes";
        strDias[1] = "Martes";
        strDias[2] = "Miercoles";
        strDias[3] = "Jueves";
        strDias[4] = "Viernes";
        strDias[5] = "Sabado";
        strDias[6] = "Domingo";
 
        //Creamos un ciclo for para repetir los datos segun la cantidad de dias:
        for (int i = 0; i < cantDias; i++){
            System.out.print("Ingrese los gastos del dia " + strDias[i%7] + ": " );
                vector[i] = teclado.nextInt();
 
        }
 
        for (int i = 0; i < cantDias; i++){
            System.out.println(vector[i]);
            gastoTotal += vector[i];
             if (vector[i] > gastomayor){
                gastomayor = vector[i];
                dia = i;
             }
        }
        System.out.println("El mayor gasto fue de " + gastomayor + " del dia " + strDias[dia] );
        System.out.println("El gasto total fue de: " + gastoTotal );
    }
 
}
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