2016-12-08 13 views
1

私はまだかなりJavaに新しいです、誰かが、コードが最初のforループにループして戻ってくる要件(1-10)を満たす値を入力すると説明できますか?どのようにして問題を修正し、正しく機能させるためのコードを修正できますか?誰かがこのコードがループを続ける理由を説明できますか?

public void rateEpisode(Scanner sc, String seriesName, int searchEpisodeNumber, ArrayList<TVSeries> tvSeries) { 
    for(int i = 0; i<tvSeries.size(); i++) { 
     for(int j = 0; j< tvSeries.get(i).getListOfEpisodes().size(); j++){ 
      if((seriesName.equals(tvSeries.get(i).getTitle())) && 
        (searchEpisodeNumber == tvSeries.get(i).getListOfEpisodes().get(j).getEpisodeNumber())){ 
       System.out.println("Please enter your rating(1-10) of " + tvSeries.get(i).getTitle() + ", Episode " + tvSeries.get(i).getListOfEpisodes().get(j).getEpisodeNumber() + ". " 
        + tvSeries.get(i).getListOfEpisodes().get(j).getEpisodeName() + " : "); 
       boolean validInput = false; 
       int userEpRating = -1; 
       do{ 
        System.out.println("Test"); 
        validInput = false; 
        if(sc.hasNextInt()){ 
         userEpRating=sc.nextInt(); 
         sc.nextLine(); 
         if(userEpRating < 11 && userEpRating > 0){ 
          validInput = true; 
         } else{ 
          System.out.println("Please enter a rating between 1 and 10: "); 
          sc.nextLine(); 
         } 
        }else{ 
         System.out.println("Please enter an integer between 1 and 10: "); 
         sc.nextLine(); 
        } 
       }while(!validInput); 
       tvSeries.get(i).getListOfEpisodes().get(j).setUserEpReview(userEpRating); 
      } 
     } 
    } 
} 
+0

デバッグしようとしましたか? – manfcas

+1

申し訳ありませんがクリアされます。あなたは3つのループを持っています.2つはループに適しており、内側にはdo/whileがあります。あなたが観察している行動を明確にすることはできますか? – duffymo

+0

for for while ... –

答えて

0

移動このラインここまで

tvSeries.get(i).getListOfEpisodes().get(j).setUserEpReview(userEpRating); 

if(userEpRating < 11 && userEpRating > 0){ 
    validInput = true; 
    tvSeries.get(i).getListOfEpisodes().get(j).setUserEpReview(userEpRating); 
    return; 
} 
    ... 

、それの後にreturnを追加します。
何も返さないメソッド(void)でreturnを呼び出すと、メソッドはすぐに存在します。

+0

申し訳ありませんが、動作しませんでした:( – ImmortalDB

+0

@ImmortalDB実行するとどうなりますか? プログラムがこれに到達するかどうかを確認してください。 – ItamarG3

+0

有効な入力 – ImmortalDB

関連する問題