-1

互換性のない型が必要ですintfound:void on this line-> moneyCount = countDemoninations(change、denomination [i])。理由を理解しようとしていますか?

public class Change {
    int [] denomination = {1,2,5,10,20,50,100,200,500,1000,2000,5000};
    int moneyCount = 0; 

    public void catagorizeChange(int change){
        for (int i = 0; i < denomination.length; i++){
            moneyCount = countDemoninations(change, denomination[i]);

        }
    }   

    public void countDemoninations(int change, int denomination){
        int moneyCount =0;
        while (change >= denomination){
            moneyCount = moneyCount++;
            change = change - denomination;
        }
    }
}

私は新しいJavaの学生ですが、以下の編集されたコードが良い習慣であるかどうか、つまり、両方が同じクラスに属する別のメソッドで使用されているかどうかを知りたいですか?

    public void countChangedenominations (int change){
        for (int i = 0; i < moneyValuearray.length; i++){
            moneyCountarray[i] = countDemonination(change, moneyValuearray[i]);
        }
    }   

    public int countDemonination(int change, int denomination){
        while (change >= denomination){
            moneyCount = ++moneyCount;
            change = change - denomination; 
        }
        return moneyCount;   
4

1 に答える 1

1

行の問題の原因:

moneyCount = countDemoninations(change, denomination[i]);

voidcountDemoninations型であるのに対し、は。型です。moneyCountint

この問題を解決するには、countDemoninationsメソッドのシグネチャを、intではなくreturnに変更してから、メソッドの最後のステートメントとして返しますvoidmoneyCount

public int countDemoninations( int change, int denomination ) {
    int moneyCount = 0;
    while ( change >= denomination ) {
        moneyCount = moneyCount++;
        change = change - denomination;
    }

    return moneyCount;
}
于 2012-10-19T22:31:05.457 に答える