2016-12-06 1 views
0

Возможно ли создание вложенного цикла на основе ввода пользователем в Java? Например, если пользователь вводит 3, то есть 3 петли, которые вложены (3 уровня цикла). Если это возможно, не могли бы вы мне показать?Вложенный цикл на основе ввода пользователем в Java

Мне это нужно, чтобы генерировать все возможности чего-то. Каждый цикл происходит дважды. Таким образом, существуют 2^n возможности.

Спасибо за большую помощь.

EDIT Я еще не закодировал часть вычисления цикла, потому что я все еще пытаюсь вычислить алгоритм. Kriteria.java

public class Kriteria { 

    String name; 
    int min, max; 
    double lowMembership, highMembership; 
public Kriteria(String name, int min, int max,low,high) { 
     this.name = name; 
     this.min = min; 
     this.max = max; 
     this.lowMembership = low; 
     this.highMembership = high; 
    } 

} 

MainClass.java

public class MainClass { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
    ArrayList<Kriteria> listKriteria = new ArrayList(); 

//later on the user can decide how many kriteria he wanted and create them    
    Kriteria kriteria1,kriteria2,kriteria3; 

    kriteria1 = new Kriteria("Kriteria 1", 1, 10, 4,3,5); 
    listKriteria.add(kriteria1); 
    kriteria2= new Kriteria2("Kriteria 2", 5, 20, 13,7,18); 
    listKriteria.add(kriteria2); 
    kriteria3 = new Kriteria3("Kriteria 3", 3, 8, 5,4,7); 
    listKriteria.add(kriteria3); 

/* I want something like this: 

1st 
double result= Kriteria1.lowMembership + Kriteria2.lowMembership + Kriteria3.lowMembership; 
2nd 
double result= Kriteria1.lowMembership + Kriteria2.lowMembership + Kriteria3.highMembership; 
3rd 
double result= Kriteria1.lowMembership + Kriteria2.highMembership + Kriteria3.highMembership; 
and so on for each possibility... 
*/ 

    }   
} 

это достаточно? Я немного изменил именование и механизм, чтобы сделать его короче

+0

Не могли бы вы высказать некоторый код, который вы пробовали? – SachinSarawgi

+0

Также вы можете быть более конкретным относительно проблемы, которую вы хотели бы решить. – abbath

+4

Вы спрашиваете, как генерировать код во время выполнения? Или вы ищете рекурсию? Непонятно, что вы хотите сделать. – UnholySheep

ответ

1

Вы не можете сгенерировать код во время выполнения, поскольку такая проблема просто переходите на рекурсию.

void fun(int n) 
{ 
    if(n==0) 
     return; 
    System.out.println(n); 
    fun(n-1); 
} 
+0

Вы можете сгенерировать код во время выполнения, он просто требует много работы и, скорее всего, не то, что OP хочет делать – UnholySheep

+0

грустно @UnholySheep прав, я ищу рекурсивный. Я разместил код, не могли бы вы проверить его? благодаря –