2014-11-08 3 views
1

Привет Я новичок в 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(); 
      } 
     } 
    } 
} 

}

кто-нибудь есть какие-либо идеи, как это действительно поможет.

+1

Существует различие между Java и JavaScript! –

+0

Используйте циклы 'while' или' do-while' для возврата в любую программу, если вы не знаете заранее, сколько раз должно происходить цикл. Кроме того, вместо использования 'while (programrunning == true) {' использовать гораздо проще 'while (programrunning) {' –

ответ

0
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; 
    } 

} 
Смежные вопросы