Methods 数组分配问题

Methods 数组分配问题,methods,Methods,我得到一个不兼容的必需类型int,在这一行中找到:void -->moneyCount=countdemonations(变更、面额[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){

我得到一个不兼容的必需类型int,在这一行中找到:void -->moneyCount=countdemonations(变更、面额[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;
        }
    }
}
公共类更改{
int[]面额={1,2,5,10,20,50100200500100020005000};
int moneyCount=0;
公共无效分类更改(内部更改){
for(int i=0;i=面额){
moneyCount=moneyCount++;
变更=变更-面额;
}
}
}
我是一名新的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;   
public void countchange面额(int-change){
对于(int i=0;i=面额){
moneyCount=++moneyCount;
变更=变更-面额;
}
返回moneyCount;

线路问题的根源:

moneyCount = countDemoninations(change, denomination[i]);
是不是
countdemoninications
属于类型,而
moneyCount
属于类型
int

要解决此问题,请将您的
countdemonations
方法签名更改为返回
int
而不是
void
,然后将
moneyCount
作为方法中的最后一条语句返回:

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

    return moneyCount;
}

除了代码> >计数项>代码>必须返回某个可供使用的东西, MuneCaldiyMuneCuff++】;是一个很坏的想法。在C和C++中,它将是未定义的行为,但是,这似乎是java,行为定义,但不是你想要的。<代码>nt并计算为旧值,因此分配给
moneyCount
的是旧值。换句话说,
moneyCount
将保持为0。