Java - Ayuda con la repetición de un método

 
Vista:
Imágen de perfil de Cristian

Ayuda con la repetición de un método

Publicado por Cristian (5 intervenciones) el 11/10/2016 01:18:34
Hola, buen día, estoy haciendo un programa en el cual el usuario ingresa la hora exacta (hh:mm:ss) en ese formato uno por uno, y también ingresa la cantidad de segundos adelante que desee ver. Por ejemplo si yo ingreso las 10:10:10 y pido que me muestre los siguientes 2 segundos tendría que mostrarme las 10:10:11 y las 10:10:12. Esto ya lo tengo hecho, lo que pasa es que a la hora de imprimir los valores, me muestra la operación hecha solo una vez. Me muestra el mensaje 2 veces (siguiendo el ejemplo anterior) pero solo me muestra un segundo después (10:10:11 me lo imprime 2 veces). ¿Alguien puede ayudarme para que me muestre el valor correcto en cada impresión?. Aquí está mi código hasta el momento. SE AGRADECE DE ANTEMANO :3

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
import static javax.swing.JOptionPane.*;
public class U3_22_05 {
   //variables que se usan en todo el código
    public static int nveces=2, hora, minuto, segundo, x;
 
    public static String reloj(int hora, int minuto, int segundo)
    {
        do{
            segundo++;
            if(segundo==60)
            {
                segundo=0;
                minuto++;
                if(minuto==60)
                {
                    minuto=0;
                    hora++;
                    if(hora==24)
                    {
                        hora=0;
                        minuto=0;
                        segundo=0;
                    }
                }
            }//fin de los if's
 
            x++;
            return "La nueva hora es "+hora+" minuto "+minuto+" segundo "+segundo;
        }while(x<=nveces);//fin del do-while
    }//fin de reloj
 
    public static void main(String[] args) {
        //pedir datos
        hora = Integer.parseInt(showInputDialog("Introduzca número de horas"));
        minuto = Integer.parseInt(showInputDialog("Introduzca número de minutos"));
        segundo = Integer.parseInt(showInputDialog("Introduzca número de segundos"));
        nveces = Integer.parseInt(showInputDialog("¿Cuántos segundos desea ver?"));
        //mostrar datos
        for(int n=1;n<=nveces;n++)
        showMessageDialog(null," "+reloj(hora, minuto, segundo));
	}//fin del main
 
}//fin del programa
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

Ayuda con la repetición de un método

Publicado por YYanes (144 intervenciones) el 11/10/2016 15:00:13
Hola amigo:

lo que sucede es que cuando llama al método "reloj" mediante el for (a la hora de mostrar los datos) lo que hace es pasarle siempre los mismos parámetros a la función, por eso le devuelve siempre el mismo resultado. Algo que puede hacer es imprimir el resultado desde el propio do-while, por ejemplo:

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
public static void reloj(int h, int m, int s)
{ //-- primeramente observe que el método es void, ya no retornará nada 
    int minuto = m;
    int segundo = s;
    int hora = h;
    do{
        segundo++;
 
        if(segundo==60)
        {
            segundo=0;
 
            minuto++;
            if(minuto==60)
            {
                minuto=0;
 
                hora++;
                if(hora==24)
                {
 
                    hora=0;
                    minuto=0;
                    segundo=0;
                }
 
            }
 
        }//fin de los if's 
       showMessageDialog(null,"La nueva hora es "+hora+" minuto "+minuto+" segundo "+segundo;
        x++;
 
    }while(x<=nveces);//fin del do-while
}//fin de reloj

Un último detalle: como ya usted está utilizando una función cíclica (do-while) no necesitará el for que está utilizando al final de su código, bastará con llamar a la función "reloj(hora, minuto, segundo)" una sola vez.

Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Cristian

Ayuda con la repetición de un método

Publicado por Cristian (5 intervenciones) el 11/10/2016 19:26:04
¡Se lo agradezco muchísimo! Ya comprendo un poco mejor
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

Ayuda con la repetición de un método

Publicado por YYanes (144 intervenciones) el 12/10/2016 14:22:34
Nada que agradecer, fue un placer ayudarle.
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