【发布时间】:2017-03-17 16:51:03
【问题描述】:
我正在努力修复 java 中的循环,如果有人能够帮助我,我将不胜感激。
完整代码:http://pastebin.com/C5SQghFa
循环问题:
for(int i = 0 ; i < length ; i++){
for(int j = 1 ; j < length ; j++){
if(defaultSet.get(i) + defaultSet.get(j) == sum){
System.out.println("YUP\n" + defaultSet.get(i) + " " + defaultSet.get(j));
finalSet.add(defaultSet.get(j));
}else if(defaultSet.get(i) == sum && !finalSet.contains(defaultSet.get(i))){
finalSet.add(defaultSet.get(i));
}else{
System.out.println("NOPE\n" + defaultSet.get(i) + " " + defaultSet.get(j));
}
}
}
我试图通过 ArrayList 运行两次,以便比较总和是否等于用户输入的目标值。
第一个 if 语句简单地比较这两个值,如果有效,则添加该值。第二条语句查看 TARGET VALUE 是否在列表中,如果在,将自动添加。
如果输出值不等于 TARGET VALUE,第三条语句将忽略它们。
我的问题是循环无法正常工作。对于某些输入,它们很好,但例如:
阵列:8、5、5、2
目标值:10
输出:5、5、5、5
这是不正确的。输出应该是:8、5、5、2!我的循环跳过了第一次和最后一次比较,并添加了我不想要的额外值。谁能解释一下如何正确设置这些循环?
【问题讨论】: