我需要将for循环传递给递归函数。
这是我的功能:

public void AddEnemyToScreen(int enemy_count)
{
    for(int i=0 ; i<enemy_count;i++)
    {
        AddEnemey(new Enemy(r.nextInt(640), -10, textures,this,game));
    }
}

我试图做到这一点:
public void AddEnemyToScreen(int enemy_count)
{
    if ( enemy_count == 1)
        AddEnemey(new Enemy(r.nextInt(640), -10, textures,this,game));
    else
    {
        AddEnemyToScreen(--enemy_count);
    }

}

但由于某种原因,它确实起作用。

最佳答案

您在递归函数中的条件是仅当敌人数等于1时添加一个敌人,这意味着您只会添加一个敌人。

public void AddEnemyToScreen(int enemy_count)
{

    // As long as enemy count is positive, keep adding enemies.
    if ( enemy_count > 0) {
             // Add new enemy to screen
            AddEnemey(new Enemy(r.nextInt(640), -10, textures,this,game));
            AddEnemyToScreen(enemy_count-1); // Add one more
    }

}

关于java - 将Java循环传递到递归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23107976/

10-10 08:11