2013-11-11 4 views
0

У меня есть метод, который заполняет массив, и мне нужно найти способ повторить его несколько раз. Цель состоит в том, чтобы повторить и повторить плотность планеты, чтобы сузить ее массу, гравитацию и плотности в определенных точках, которые являются концентрическими оболочками. Это моя первая программа, но, по-моему, я изучил приличную сумму, работая над этим. Спасибо всемКак я могу повторить метод? Java

Вот мой пример кода расчета плотности. Я, вероятно, включил слишком много, но хорошо. Поэтому мне нужно сделать это итерацию выбранным количеством раз. Каждая итерация должна быть возвращена в массовый расчет, который затем будет возвращен в расчет гравитации. И затем шоу начинается снова.

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))))); 

     } 
    } 
} 
+0

либо вызвать метод в любом условном блоке или сделать метод вызывает себя при условии. –

+1

Было бы лучше, если бы вы могли предоставить образец кода того, что он делает в настоящее время. – david99world

+0

Будет здорово, если бы вы могли предоставить пример кода. Таким образом, люди могут ответить более точно. Из простого описания они могут только догадываться о решении. –

ответ

0

вы могли бы сделать функцию, которая проверяет, является ли допуски ваших расчетов уже достаточно хорошо, вот некоторые «псевдокод»

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

планета будет массив. конечно, вы можете реализовать такие вещи, как бесконечный цикл обнаружение и т.д.

0

В принципе создать новый цикл с вашим методом inside.Also импорта java.util.Scanner для ввода

+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); 
} 

в качестве альтернативы, с петлей, вы можете сделать что-то вроде:

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  
    } 
} 
Смежные вопросы