2017-01-31 5 views
-3

次のプログラムを実行すると、「シンボルが見つかりません」というエラーが表示されます。おそらく愚かな間違いのせいかもしれませんが、私はそれを修正しようと約1時間を費やしており、何が問題なのか分かりません。ここでは、コードは次のとおりです。このプログラムで「シンボルが見つかりません」というエラーが表示されるのはなぜですか?

import java.util.*; 

public class Purse{ 

    private ArrayList<String> coins; 

    public Purse(){ 
     coins = new ArrayList<String>(); 
    } 

    public void addCoin(String coin){ 
     if(coin == "Quarter" || coin == "Dime" || coin == "Nickel") 
     coins.add(coin); 
    } 

    public void removeCoin(String coin){ 
     coins.remove(coin); 
    } 

    public void transfer(Purse other){ 
     for(int i = 0; i < other.coins.size(); i++) 
     coins.add(other.coins.get(i)); 
     other.remove(i); 

    } 

} 

、ここではエラーがある、それは私を与える:

Purse.java:23: error: cannot find symbol 
     other.remove(i); 
        ^
    symbol: variable i 
    location: class Purse 
1 error 

プログラムは、1つのArrayListから別の項目を「動かす」ことになっています。

+0

を比較するために働くことはありません

も[どのように私はJavaで文字列を比較します](http://stackoverflow.com/questions/513832/how-見ますdo-i-compare-strings-in-java) – SomeJavaGuy

+4

'for'ループで中括弧が必要です。 – Kevin

+2

'for'ループによって実行されるコードを囲むには、角括弧を使用する必要があります。しかし、それ以外に、 '=='を使って文字列を比較するべきではありません。 –

答えて

2

あなたが行うときにのみfollowinhgラインはスコープの中に埋め込まれたものである} {せずにこの

for(int i = 0; i < other.coins.size(); i++) 
     coins.add(other.coins.get(i)); 
     other.remove(i); 

...ので、基本的には、この文の

other.remove(i); 

変数が定義されていない私....

一方、0

:これは、文字列

coin == "Quarter" 
+0

ありがとうございます。私はこのJavaクラスを取っていて、何とかそれらのいずれかを学んだことはありません... – wes1099

+0

問題はありません、ここで私たちはすべて新しいことを学ぶことができます... –

関連する問題