如何让方法重复? Java的

时间:2013-11-11 12:29:01

标签: java loops methods iteration

我有一个填充数组的方法,我需要找到一种让它重复多次的方法。目的是迭代并重申行星的密度,以缩小其在同心壳体的特定点处的质量,重力和密度。这是我的第一个课程,但是,我认为在学习这个课程的过程中,我学到了不少。谢谢大家

这是密度计算的代码示例。我可能包括太多但是哦。所以我需要选择多次迭代。需要将每次迭代重新放回到质量计算中,然后将其重新计算到重力计算中。然后节目再次开始。

public class ItrDensityGrid {

    public double itrrho[];
    double b = InitialConditions.bmod;  

    // Iterating grid of densities 

    public ItrDensityGrid(int shells, double radius, double mass){

            GravityGrid gg = new GravityGrid(shells, radius, mass); 

            for(int k = shells; k >= 0; k--){

                    itrrho[k] = (itrrho[k]*(1+(gg.alpha[k]*(1.0 / 2)))*(1 / (1-((gg.alpha[k])*(1.0 / 2)))));

        }
    }
}

2 个答案:

答案 0 :(得分:1)

这可以通过Recursion或循环来实现。

在递归中,您可以从方法本身内部再次调用该方法。确保有条件地调用(或返回),否则,它可能导致无限循环!

以下是带有递归的示例

public planetMars (double density, double mass) {

    // do your calculations 
    density = density / 10.05312;
    mass = mass / 7.2378;
    myArray[] = density; // or whatever you want        

    // if calculations have not narrowed enough, call recursively
    if ( density > 5.2)
        planetMars (density, mass);
}

或者, with loop ,您可以执行以下操作:

public planetMars (double density, double mass) {

    // loop unless the calculation is not cool
    while ( density > 5.2) {
        // do your calculations 
        density = density / 10.05312;
        mass = mass / 7.2378;
        myArray[] = density; // or whatever you want    
    }
}

答案 1 :(得分:0)

你可以创建一个函数来检查你的计算公差是否已经足够好了,这里有一些“伪代码”

 while(toleranceIsGood(planet) == false)
 {
      planet = calculatePlanet(planet);
 }

planet将是阵列。当然,你可以实现像无限循环检测等的东西