gpt4 book ai didi

java - 回到程序的开头

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:30 25 4
gpt4 key购买 nike

嗨,我现在是java新手。我有一个工作代码,但如果用户输入的时间错误,我希望它返回到开头。我似乎无法解决这个问题,有没有一种简单的方法可以做到这一点。

    package Time_calculation;

import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Time_calculation {

public static void main(String[] args) {

SimpleDateFormat timeFormat = new SimpleDateFormat ("HH:mm:ss");

Date T1 = null;
Date T2 = null;


Scanner RFK = new Scanner(System.in);

boolean programrunning = true;
while (programrunning == true){


System.out.println("Enter start time HH:MM: (If you wish to exit please type 'Exit')");
String srtTime = RFK.nextLine();
if (srtTime .matches ("Exit")){
System.out.println("Exiting...");
System.exit(0);
}else{
try{
T1 = timeFormat.parse(srtTime);
}catch (Exception e){
System.err.println("Error");}


System.out.println("Enter end time HH:MM:SS (If you wish to exit please type 'Exit')");
String endtime = RFK.nextLine();
if (endtime .matches ("Exit")){
System.out.println("Exiting...");
System.exit(0);
}else{
try{
T2 =timeFormat.parse(endtime);
}catch (Exception e){
System.err.println("Error");}

long diff = T2.getTime() - T1.getTime();
long diffsec = diff / 1000;
System.out.println("Your time in seconds is: " + diffsec + " seconds");

double ms = 1609.344 / diffsec;
double mph = ms * 2.23693629;
System.out.println("Speed in M/S: " + ms);
System.out.println("Speed in MPH is: " + mph);

if(mph > 6){
System.out.println("Running faster than average speed!");}
else{
System.out.println("You are running lower than average speed!");}

System.out.println();
}
}
}
}

}

有谁有任何想法吗,这真的很有帮助。

最佳答案

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class TimeCalculation {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);

while (true) {
Date start = TimeCalculation
.readInput(
"Enter start time HH:MM: (If you wish to exit please type 'Exit')",
sc);

Date end = TimeCalculation
.readInput(
"Enter End time HH:MM: (If you wish to exit please type 'Exit')",
sc);
// Do whatever you want with start and end here
}
}

/*
* Take care of reading input if valid input found return it else propmt again for valid input or exit if user wants
* */

public static Date readInput(String msg, Scanner sc) {
Date output = null;
boolean isValid = false;
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
while (!isValid) {

System.out.println(msg);
String time = sc.nextLine();

if (time.matches("Exit")) {
System.out.println("Exiting...");
System.exit(0);
} else {
try {
output = timeFormat.parse(time);
isValid = true;
} catch (Exception e) {
System.out.println("Invalid Input");
}
}
}
return output;
}

}

关于java - 回到程序的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26817976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com