Я начинающий в JAVA и мне хотелось бы знать porqué напечатай два раза ("ingresar hora válida")
, если я ввожу в компьютер стоимость, которая не соответствует (900 например)
Далее я выставляю код, который я использую:
import java.util.Scanner;
public class Ej68_ultimo {
public static void main(String[] args) {
int hora;
int continuanMasClientes;
boolean sigue = false;
ClienteEstacionamiento cliente = new ClienteEstacionamiento();
Scanner entrada = new Scanner(System.in);
Scanner opcion = new Scanner(System.in);
int continua;
// Ingreso de horas
do
{
do
{
System.out.println("Ingrese horas: ");
hora = Integer.parseInt(entrada.nextLine());
if( cliente.esHoraValida(hora) == true )
cliente.ingresarHoras(hora);
}
while( cliente.esHoraValida(hora) == false );
System.out.printf("Horas en el estacionamiento: %d, cobro correspondiente: %f\n", cliente.obtenerHoras(), cliente.calcularCargos());
System.out.println("mas clientes? 1(si), 2(no): ");
continua = Integer.parseInt(opcion.nextLine());
}
while( continua == 1 );
}
}
И класс "ClienteEstacionamiento" - следующий:
public class ClienteEstacionamiento {
private int horasEstadia;
private final static double COBROADICIONAL = 0.5;
private final static double COBROMAXIMO = 10.0;
public void ingresarHoras(int hrs)
{
horasEstadia = hrs;
}
public boolean esHoraValida(int hrs)
{
boolean esHoraCorrecta;
if( (hrs < 1) || (hrs >= 90) )
{
System.out.println("Ingresar hora válida");
esHoraCorrecta = false;
}
else
{
esHoraCorrecta = true;
}
return esHoraCorrecta;
}
public int obtenerHoras()
{
return horasEstadia;
}
public double calcularCargos()
{
double cobro;
double diferenciaHoras;
if( horasEstadia <= 3 )
cobro = 2.0;
else
{
if ( horasEstadia >= 10)
cobro = COBROMAXIMO;
else
{
diferenciaHoras = horasEstadia - 3;
cobro = 2 + ( diferenciaHoras * COBROADICIONAL );
}
}
return cobro;
}
}
возможно будьте, из-за которого ты посылаешь называть двумя разами método cliente.esHoraValida (час) :
do
{
System.out.println("Ingrese horas: ");
hora = Integer.parseInt(entrada.nextLine());
if( cliente.esHoraValida(hora) == true ) // uno aquí
cliente.ingresarHoras(hora);
}
while( cliente.esHoraValida(hora) == false ); /// y el segundo aquí
Идеальное состояло бы в том, чтобы ты был равен в переменную, и después был переменной, которую ты оцениваешь, как ты это делаешь с "постоянной"