-3

私はこれを少し見てきました..そして、アイテム= nullを入れて何が起こるかを確認しました..しかし、このコードのビットは無限ループに陥り続けます. item は常に null に等しく、ループから抜け出す必要がありますが、実行を続けます。

 ArrayList<String> collection = new ArrayList();
  Scanner arrayRead = new Scanner(new FileReader("SalesStar.txt"));

   //iterate through file to put into Arraylist
   String item = null;
   while( item != null ) {           
       item = arrayRead.next();
       collection.add(item);           
   }

   arrayRead.close();


   System.out.println(collection);
   System.out.println(item);
4

3 に答える 3

2

ループに入らない

   String item = null;

この行では、アイテムをnullに設定しています

   while( item != null ) 

しかし、その次の行で条件 item!=null を設定すると、常に false になるため、ループに入ることはありません。

それを機能させるには、次のことを行うことができます(すべてすでに説明したように)

   while( arrayRead.hasNext() ) {           
       item = arrayRead.next();
       collection.add(item);           
   }
于 2013-05-10T04:04:28.850 に答える
0

この変更を試してください

while(arrayRead.hasNext()) 

補足として、私の見解では、これはより良く見えます

Scanner arrayRead = new Scanner(new File("SalesStar.txt"));
于 2013-05-10T04:05:19.350 に答える
0

ループが無限になる可能性がある状況は見当たりません。したがって、ここで確認する最善の条件は、スキャナーがNext()要素を持っているかどうかを確認することです。

String item = null;
   while( arrayRead.hasNext() ) {           
       item = arrayRead.next();
       collection.add(item);           
   }

または、現在のロジックを続行する場合は、文字列を次のように初期化する必要があります

String item = arrayRead.next();
于 2013-05-10T04:05:47.963 に答える