我知道你可以做到
while(function){
}
等,但我想要发生的几乎是:
我有6个人: 中冶京诚 掠夺 马修 詹姆士 刘易斯 国
我想制作一种类似的灯具程序,就像
一样 ceri v harry
ceri v matthew
ceri v james
ceri v kwok
然后为每个人做这件事(但如果你发现了cri v harry,那么harry v ceri就不会出现了)...
我想要一些指导是否最合适的阵列或......?
我不是要求任何代码或者某人为我做这个,因为它是我自己的小项目,只是指导。
答案 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,用于存储你的结果集,因为输入名称列表的大小会增加。