如何在满足条件之前不断重新循环代码?

时间:2014-07-18 18:25:49

标签: java

我知道你可以做到

  while(function){


 } 

等,但我想要发生的几乎是:

我有6个人: 中冶京诚 掠夺 马修 詹姆士 刘易斯 国

我想制作一种类似的灯具程序,就像

一样
 ceri v harry
ceri v matthew
ceri v james
ceri v kwok

然后为每个人做这件事(但如果你发现了cri v harry,那么harry v ceri就不会出现了)...

我想要一些指导是否最合适的阵列或......?

我不是要求任何代码或者某人为我做这个,因为它是我自己的小项目,只是指导。

5 个答案:

答案 0 :(得分:3)

编辑:如果你真的在寻找一个提示,卢克的答案会更好;如果你还需要帮助,请阅读本文的其余内容:)


没有任何代码很难解释,但根据您的要求,我会尝试。假设您将所有名称都放在数组names中。

循环遍历for循环中的每个名称。在该循环内部,循环遍历其余的名称 - 例如,如果外部循环从索引0开始,则在索引1处开始内部循环。对于内部循环的每次迭代,您将拥有唯一的名称组合


现在如果这仍然令人困惑,这里有一些代码可以帮助你入门:

for(int i=0;i<names.length;i++) {
    for(int j=i+1;j<names.length;j++) {
        System.out.println(names[i] + " v " + names[j]);
    }
}

答案 1 :(得分:0)

如果我理解正确,你正在寻找暗示但想要自己解决。你是对的,一群人最容易。

这里有一个更详细的提示(如果你不想要更多内容,请不要阅读!)你想要遍历数组,并且对于每个人,将他与所有人配对。他在阵中。最后,你需要一个&#34; for&#34;循环在&#34; for&#34;循环。

答案 2 :(得分:0)

由于没有代码,你可以拥有一个数组:

String names[] = new String [] {"ceri", "harry", "matthew", ...};

然后在for:

中进行比较
for(int i = 0; i < names.length; i++) {
    for(int j = i + 1; j < names.length; j++) {
        System.out.println(names[i] + " v " + names[j]);
    }
}

答案 3 :(得分:0)

String[] names = new String[] {"ceri", "harry", "matthew", ...};

for (int i = 0; i < names.length; i++) {
    for (int j = i + 1; j < names.length; j++)
        System.out.println(names[i] + " v " + names[j]);
}

通过循环遍历每个元素并仅打印出“v”后面的名称,可以消除重复的组合。

答案 4 :(得分:0)

正如其他人所说,你将要使用两个嵌套的for循环和两个嵌套的if语句。这将允许您获取名称,迭代所有其他名称,同时检查结果是否在任何顺序的结果集中。

值得注意的是,您只需要查看列表中的一半以上的名称,以便获得没有任何双打的所有对。你可能还想查看一个动态对象,比如和arraylist,用于存储你的结果集,因为输入名称列表的大小会增加。