2014-11-11 9 views
1

Так что это мой код: -Как выйти из моей программы без использования return и System.exit()?

import java.io.*; 
class RAILWAYS 
{ 
    BufferedReader br=new BufferedReader (new InputStreamReader(System.in)); 
    void main() throws IOException 
    { 
     System.out.print("\f"); 
     System.out.println("Welcome to IRCTC Railway Reservation System! Please proceed further  to book your train!"); 
    System.out.println(); 
    String[] trainname = {"Rajdhani EXP", "AUG Kranti EXP", "Chennai EXP", "Aravali EXP", "Paschim EXP", "Gareeb Rath", "Punjab Mail", "Dehradun EXP", "Swaraj EXP", "Aravali EXP"}; 
    int[] trainno = {57835, 87612, 15384, 16512, 65265, 51654, 31543, 56416, 85484, 78455}; 
    String[] origin = {"Mumbai", "Mumbai", "Delhi", "Kolkata", "Mumbai", "Goa", "Durg", "Aligarh", "Jaipur", "Bhuj"}; 
    String[] destination = {"Surat", "Delhi", "Chennai", "Mumbai", "Ajmer", "Mumbai", "Bikaner", "Agra", "Madurai", "Buxar"}; 
    int[] fare = {650, 950, 1100, 1200, 1050, 600, 1100, 1250, 1300, 1100}; 
    int[] lengths = {trainname.length, trainno.length, origin.length, destination.length, fare.length}; 
    String[] sd = new String[3]; 
    int in[] = new int[3]; 
    System.out.println("Train Name\t\tTrain No.\tOrigin\t  Destination\tFare"); 
    System.out.println(); 
    for (int i=0;i<lengths[0];i++) 
    { 
     System.out.println(trainname[i]+"\t\t"+trainno[i]+"\t\t"+origin[i]+"\t\t"+destination[i]+"\t\t"+fare[i]); 
    } 
    System.out.println(); 
    System.out.print("Enter train no. to select train or enter 1 to exit :- "); 
    in[0] = Integer.parseInt (br.readLine()); 
    if (in[0]==1) 
    { 
     System.out.print("Thanks for visiting our website!"); 
     return; 
    } 
    else 
    { 
     for (int j=0;j<lengths[0];j++) 
     { 
      if (trainno[j]==in[0]) 
      { 
       sd[0] = trainname[j]; 
       sd[1] = origin[j]; 
       sd[2] = destination[j]; 
       in[1] = fare[j]; 
      } 
     } 
    } 
    if (in[1]==0) 
    { 
     System.out.print("Wrong input! Try again...."); 
     return; 
    } 
    System.out.print("Enter number of passengers (max 5) :- "); 
    in[2] = Integer.parseInt (br.readLine()); 
    if (in[2]>5) 
    { 
     System.out.print("Uh-Oh! No. of passengers are more than 5, please try again"); 
     return; 
    } 
    String[] pn = new String[in[2]]; 
    for (int k=0;k<in[2];k++) 
    { 
     System.out.print("Enter passenger's name :- "); 
     pn[k] = br.readLine(); 
    } 
    System.out.println(); 
    System.out.println("Booking Details :-"); 
    System.out.println(); 
    System.out.println("No. of passengers :- "+in[2]); 
    for (int z=0;z<in[2];z++) 
    { 
     System.out.println("Name of passenger travelling :- "+pn[z]); 
    } 
    System.out.println("Train Name :- "+sd[0]); 
    System.out.println("Train Number :- "+in[0]); 
    System.out.println("Train Origin :- "+sd[1]); 
    System.out.println("Train Destination :- "+sd[2]); 
    System.out.println("Train Fare/Person :- "+in[1]); 
    System.out.println("Total Fare :- "+in[2]*in[1]); 
    System.out.println(); 
    System.out.println("Thanks for your booking! Your seats have been confirmed. Have a good day!"); 
} 
} 

Как вы можете видеть, что я использовал возврат товара много раз здесь, но мой учитель одна большая боль и говорит, что я не могу использовать возврат или System.exit (0) : P Мне действительно нужно прекратить выполнение программы в моих операциях if, поскольку i cat use return или System.exit (0): P Я слышал, что это возможно с циклом while или do-while, но я не могу понять, как ...

Помощь всегда будет цениться: P

+0

Вы можете попробовать исключение, исключенное пользователем, вместо возврата. – sumanta

+0

@tobias_k Мне нужно использовать что-то еще для операторов возврата, которые я использовал в моих операциях if в программе. Я знаю, что программа завершается после завершения последнего утверждения -_- –

+0

@starlord, который он нам не научил, что тоже : P: '( –

ответ

0

вы могли бы бросить исключение, когда вы плохо я nput, и либо поймать его, либо разрешить ему убить программу.

Однако я не думаю Это то, что ваш учитель пытается вам сказать. Я думаю, что он на самом деле пытается заставить вас заставлять программу запрашивать (повторно) действительный ввод, если пользователь вводит что-то недействительное.

И на самом деле это то, что выводимые вами сообщения в случае ошибки imply вам следует делать.

(можно перестроить свой код так, что метод main имеет одну точку возврата;.. То есть в конце Есть множество способов, вы могли сделать это, но, если ваш учитель просит вы делаете это, они не помогают, IMO.)

+0

Я тоже могу это сделать, но я тоже не могу понять, как это сделать: P total noob здесь: P я знаю, что мы сможем это сделать с тобой и делать, я действительно пытался, но он никогда не работал и программа никогда не работала как это должно было быть –

+0

Я предлагаю вам спросить своего учителя, что он или она действительно хочет от вас. –

+0

Я почти уверен, что ** отверстие не скажет мне, это то, что происходит в Индии -_- –

2

Вы использовали все условия «если» для возврата сообщений об ошибках, и вы обрабатываете положительные сценарии, если система не удовлетворяет этим условиям «если». Вы можете заменить это, указав условие «если» для правильных сценариев и используя условие «else» после этого, чтобы возвращать сообщения об ошибках. Таким образом вам не придется явно возвращаться.

например: Последняя часть Уре программы может быть написана как:

if (in[2]<=5) 
    { 

    String[] pn = new String[in[2]]; 
    for (int k=0;k<in[2];k++) 
    { 
     System.out.print("Enter passenger's name :- "); 
     pn[k] = br.readLine(); 
    } 
    System.out.println(); 
    System.out.println("Booking Details :-"); 
    System.out.println(); 
    System.out.println("No. of passengers :- "+in[2]); 
    for (int z=0;z<in[2];z++) 
    { 
     System.out.println("Name of passenger travelling :- "+pn[z]); 
    } 
    System.out.println("Train Name :- "+sd[0]); 
    System.out.println("Train Number :- "+in[0]); 
    System.out.println("Train Origin :- "+sd[1]); 
    System.out.println("Train Destination :- "+sd[2]); 
    System.out.println("Train Fare/Person :- "+in[1]); 
    System.out.println("Total Fare :- "+in[2]*in[1]); 
    System.out.println(); 
    System.out.println("Thanks for your booking! Your seats have been confirmed. Have a good day!"); 
} else{ 
System.out.print("Uh-Oh! No. of passengers are more than 5, please try again"); 

    } 
+0

Попытка этого теперь, опубликует, если я, наконец, его получу. Спасибо btw: D –

0

Вы можете обернуть все это с

while(true){ //YOUR CODE HERE}

, а затем заменить возвращение; с

break;

, чтобы остановить цикл или

продолжить;

Чтобы перейти к следующей итерации и повторите попытку.

+0

Вы сэр, спасатели жизни! Это сработало! Большое спасибо! –

+0

Можете ли вы дать мне пример продолжения повтора? –

+0

продолжить; просто перейдет к следующей итерации (к началу того времени). –

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