2017-01-31 59 views
-3

当我运行以下程序时,出现'找不到符号'错误。这可能是由一个愚蠢的错误造成的,但我花了大约一个小时试图修复它,我不知道问题是什么。下面是代码:为什么我在这个程序中遇到'找不到符号'错误?

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 

程序应该是“移动”从一个ArrayList的项目的方式。

+0

也看到[我如何在Java中比较字符串(http://stackoverflow.com/questions/513832/how- do-i-compare-strings-in-java) – SomeJavaGuy

+4

你需要用'for'循环的大括号。 – Kevin

+2

您需要使用括号来包围您想要由'for'循环执行的代码。但除此之外,你不应该使用'=='比较字符串。 –

回答

2

,当你做到这一点

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

没有{}则只有followinhg线被嵌入的范围内一个...

所以基本上,对于这一说法:

other.remove(i); 

可变没有定义....

在另一方面:

这不会有任何效果的比较字符串

coin == "Quarter" 
+0

谢谢。我正在参加这个java课程,不知怎的,我从来没有学过这些...... – wes1099

+0

没问题,这里我们都可以学习新东西...... –

相关问题