voglio che l'uscita del programma torni alla domanda se l'utente inserisce un valore sbagliato.
questo è per i miei compiti. ho cercato di cercare su Youtube e Google, ma non riesco a identificare il mio errore e non ha mostrato qual è il mio errore.
final int MINS_IN_AN_HOUR = 60; final int AN_HOUR = 100; final int LAST_MINUTE_OF_A_DAY = 2359; int arrivalTime = 0; int arrivalMins = 0; Scanner input = new Scanner(System.in); System.out.print("Please enter the vehicle's arrival time (24-hour format): "); while(true){ arrivalTime = input.nextInt(); if(arrivalTime >= AN_HOUR && arrivalTime <= LAST_MINUTE_OF_A_DAY){ int hours = arrivalTime/AN_HOUR; int minutes = arrivalTime - hours * AN_HOUR; arrivalMins = hours * MINS_IN_AN_HOUR + minutes; break; // If user was correct, exit program } else{ System.out.println("Please enter a valid number or enter a valid time"); System.out.print("Please enter the vehicle's arrival time (24-hour format): ");
}}}}}}
l'uscita prevista deve essere l'altra istruzione e ripetere il ciclo.
En title : How to fix the loop if put an error value and return to ELSE statement on my given code in Java
Scanner
viene chiesto unint
, ma non ottiene uno. si dovrebbe inserire untry .. catch
intorno alnextInt()
econtinue
nelcatch
.il problema nel vostro codice non è la vostra condizione, il problema è che si sta leggendo l'input dell'utente utilizzando
nextInt()
, senza catturare l'eccezione nel caso in cui l'input dell'utente non è un int.basta sostituire questa linea:
con un blocco prova... cattura