2016-09-10 7 views
-1

STOPに入ると終了しないので、do whileループに問題があります。また、例外を追加する必要があるのか​​、そうでないのか分かりません。私はtoStringを行うほうが効率的だと知っていますが、プログラムの必要条件は出力を抽出するときのforループです。Javaでdo whileループに関する問題

import java.util.*; 
import java.util.ArrayList; 
import java.lang.IndexOutOfBoundsException; 
public class MyProj 
{ 

    public static void main(String[] args) 
    { 
     ArrayList <String> MyItems = new ArrayList <String>(); 
     Scanner Scan = new Scanner(System.in); 
     String Temp; 
     System.out.println("Please enter the name of an object, repeat as needed, type STOP to end"); 

      do 
      { 
       Temp = Scan.nextLine(); 
       if(Temp != "STOP") 
       { 
       MyItems.add(Temp); 
       } 
      } 
      while(Temp == "STOP"); 

     for(int x = 0; x <= MyItems.size() - 1; x++) 
     { 
      System.out.println(MyItems.get(x)); 
     } 



    } 
} 
+2

'while(!temp.equalsIgnoreCase(" stop "));また、メモリアドレスを比較するjava ...の文字列を' == 'と比較することはできません。代わりに '.equals(String another)'を使用するか、上記の例でちょうど使用したもの – 3kings

+0

ありがとう、非常に感謝します。 –

+0

[Javaで文字列を比較するにはどうすればよいですか?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

答えて

1

このコードを試してみてください。

do 
{ 
    Temp = Scan.nextLine(); 
    if(!Temp.equals("STOP")) 
    { 
     MyItems.add(Temp); 
    } 
} 
while(!Temp.equals("STOP")); 

私は3kingsが提案@としてあなたがequalsIgnoreCase()にそれを変更することをお勧めします。

関連する問題