ユーザーによる入力を受け取り、それが正しいことを確認するために検証するメソッドを作成しています。正しければ、メソッドを呼び出し、ユーザー入力を入力します。しかし、何らかの理由で、メソッド呼び出しが機能していません。エラーは発生しません。単にエラーが発生しないだけです。コードの最後にprintステートメントを配置して、実際にそこに到達し、到達することを確認しましたが、何らかの理由で、想定どおりにメソッドを呼び出さないだけです。もう1つのメソッドは、それ自体を呼び出してパラメーターを介して文字列を入力すると、正常に機能します。
コードは次のとおりです。
public void getGetScheduledShowByFilmInput()////new - omar////
{
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(System.in));
String filmInput;
filmInput = "";
boolean foundFilm;
foundFilm = false;
System.out.println("Here is a list of films that are currently showing:");
for(Film film : films){
System.out.println(film.getFilmName());
}
System.out.println("");
System.out.println("Please type the film name that you wish to view the corresponding shows for and press enter.");
System.out.println("Type 'exit' and press enter to exit this process.");
while(foundFilm == false){
try{
filmInput = reader.readLine();
}
catch (IOException e){
System.out.println("Error");
}
//If user enters "exit" then return.
if(filmInput.equals("exit")){
return;
}
//Check to see if the film name input by the user corresponds to any film showing.
for(Film film : films){
if(film.getFilmName() == filmInput){
foundFilm = true;
break;
}
}
if(foundFilm = true){
System.out.println("Film found.");
}
else{
System.out.println("The film name you entered has not been recognised. Please try again.");
}
}
//Call the function and input the film name input by the user.
getScheduledShowsByFilm(filmInput); ////This is the code that seems to be the problem.
System.out.println("reached bottom");
}
2番目の方法は次のとおりです。
public void getScheduledShowsByFilm(String inputFilmName)
{
ArrayList<Show> scheduledShows;
scheduledShows = new ArrayList<Show>();
for(Film film : films){
if(inputFilmName == film.getFilmName()){
for(Schedule schedule : schedules){
scheduledShows.add(schedule.getShowsOfFilm(film));
if(scheduledShows.get(scheduledShows.size() - 1) == null){
scheduledShows.remove(scheduledShows.size() - 1);
}
}
}
}
for(Show show : scheduledShows){
System.out.println("**********************************");
show.getShowDetails();
System.out.println("**********************************");
}
}
2番目のメソッドは、それ自体を呼び出して手動でパラメーターを入力すると、完全に機能します。
それはおそらく私が理解していない非常に単純なものです!ははは、あなたの助けをありがとう:)