为什么我在这个程序中会出现 'cannot find symbol' 错误?

Why do I get a 'cannot find symbol' error in this program?

当我运行下面的程序时,我得到一个'cannot find symbol'错误。这可能是由一个愚蠢的错误引起的,但我花了大约一个小时试图修复它,但我不知道问题出在哪里。这是代码:

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

该程序应该是 'moving' 个项目,从一个 ArrayList 到另一个。

当你这样做时

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

如果没有 { } 那么只有下一行嵌入到 for 范围中...

所以基本上,对于这个声明:

other.remove(i); 

变量i未定义....

另一方面:

这永远不会用于比较字符串

coin == "Quarter"