【问题标题】:Nested loop based on user input in JavaJava中基于用户输入的嵌套循环
【发布时间】:2016-12-06 09:52:48
【问题描述】:

是否可以基于 Java 中的用户输入进行嵌套循环?例如,如果用户输入 3,则有 3 个嵌套循环(3 级循环)。如果可能的话,你能告诉我怎么做吗?

我需要它来产生事物的每一种可能性。每个循环发生两次。所以有 2^n 种可能性。

感谢您的大力帮助。

编辑 我还没有对循环计算部分进行编码,因为我仍在尝试找出算法。 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...
*/

   }        
}

够了吗?我稍微更改了命名和机制以使其更短

【问题讨论】:

  • 能否请您发布一些您尝试过的代码?
  • 另外,您可以更具体地说明您想要解决的问题。
  • 你问的是如何在运行时生成代码?或者你在寻找递归?目前还不清楚你想做什么
  • 可以使用单个顶级循环来模拟嵌套循环的迭代。是的,请给我们看一些代码。
  • 预期输入、预期输出、线索以及您尝试过的内容,包括您不清楚的部分。哦,好吧,只是一个线索,递归的。我敢打赌他正在做一些功课。

标签: java loops nested-loops


【解决方案1】:

你不能在运行时生成代码,因为这种问题只需要递归。

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

【讨论】:

  • 你可以在运行时生成代码,只是需要做很多工作,而且很可能不是 OP 想要做的
  • 遗憾的是@UnholySheep 是对的,我正在寻找递归的。我把代码贴出来了,你看看好吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多