我需要将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/