2017-05-02 6 views
-1

今は、 行番号を押して、テキストファイルから1行を出力することができます。問題は、当社のテキストファイル の商品数に達するまで、 の行番号を再度印刷することができる場合です。ループを止めて1行だけを印刷するにはどうすればいいですか 私たちが選んだのは?テキストファイルに基づいてArrayListから1行を印刷する方法は?

static ArrayList<Product> printOneLine() { 
    ArrayList<Product> oneLineList = new ArrayList<Product>(); 
    Scanner oneLine = readDetails("Products-JavaBikes.txt"); 

    while (oneLine.hasNextLine()) { 
     oneLineList.add(getProduct(oneLine.nextLine())); 

     Scanner input = new Scanner (System.in);    
     System.out.print("Please enter a number:"); 

     for (int i = input.nextInt(); i < oneLineList.size();) {      
      System.out.println(oneLineList.get(i)); 
      break; 
     } 
    } 
    return oneLineList; 
} 
+2

最初に一度だけ質問してから、正しい行を見つけるために結果を使用するのではなく、繰り返しループ内の番号を尋ねる理由はありますか? –

+0

ユーザーインターフェイスから番号を取得してから、oneList.get(userEnteredLineNumber)を返すだけです。 –

+1

forループは意味をなさない、私はあなたがif文を探していると思います。 Forループはループしているため、最初の反復で無条件に壊れた場合、非常に間違ったことをしています。また、コードをデバッグしたり、それが何をしているのかを一歩一歩考えてもいいかもしれません。コードを修正する方法を教えてくれるのは長期的には役に立たないでしょう。 – Dukeling

答えて

0

ご質問から少し不明です。しかし、私はあなたが入力された製品を見つける上であなたのwhileループから逃れようとしていると思います。冗長なforループをifステートメントに変更したので、whileループから壊れることがあります。あなたのブレークは、whileループからではなく、forループから壊れています。

関連する問題