Estoy aprendiendo Java con un libro,al final de cada capitulo te da unos cuantos ejercicios resueltos y ejercicios para que lo resolvamos y estoy teniendo problemas con uno de ellos.
El ejercicio me pide que ingrese una hora/minutos/segundo(tiene que ser correcto,es decir,no vale 30 horas o 72 min) y despues que ingrese un numero(en segundos) que se sumara a la hora dando una hora correcta(en horas/minutos/segundos).
Pero no consigo hacerlo,me da muchos problemas.
Vengo aqui para ver si alguien me puede ayudar a hacerlo(a ser posible explicandome mis errores y asi se que es lo que no debo hacer cuando tenga que volver a hacer algo parecido).
Dejo el codigo que llevo echo abajo(echo en Eclipse),y antes de nada dejar claro que solo se hacer condicionales,bucles y funciones y por el capitulo en el que me dieron el ejercicio,se deberia poder hacer solo con condicionales y bucles,pongo esto mas que nada porque todavia no tengo ni idea ni de tablas ni de clases ni de nada mas complejo que condicionales,bucles y funciones.
Muchas gracias de antemano.
Código
package Capitulo3.SinTerminar; import java.util.Scanner; public class Ejercicio2 { //El programa debe pedir una hora ingresando Horas, Minutos y Segundos y depsues sumarle X segundos int h,m,s,num; boolean h1=true,h2=true,m1=true,m2=true,s1=true,s2=true; do{ h=sc.nextInt(); if(h<=23){h1=true;}else{h1=false;} if(h>=00){h2=true;}else{h2=false;} }while(h1!=true||h2!=true); do{ m=sc.nextInt(); if(m<=59){m1=true;}else{m1=false;} if(m>=00){m2=true;}else{m2=false;} }while(m1!=true||m2!=true); do{ s=sc.nextInt(); if(s<=59){s1=true;}else{s1=false;} if(s>=00){s2=true;}else{s2=false;} }while(s1!=true||s2!=true); num=sc.nextInt(); int a,b,c,d,e; a=s*3600; b=m*60; c=s; d=a+b+c; e=d+num; h=(int)e/3600; m=(int)(e-(e/3600))/60; s=(int)(e-(m*60)); } }[/code=java] pd: La unica forma que tengo para asegurarme que al insertar un numero sea valido(es decir,entre 0 y 23 para horas y 0-59 para minutos y segundos) es con el codigo que hay en las lineas 9-14;15-20;21-26. Mi duda respecto a ese codigo es si hay otra forma,porque este lo veo muy,muy lioso,me saio despues de un buen rato de probar combinaciones raras.