我正在努力修復Java中的循環,如果有人能夠幫助我,我會非常感激。JAVA LOOP:總和的數字集
整個代碼: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,它將忽略輸出值。
我的問題是循環無法正常工作。對於某些輸入他們的正常,但例如:
的ArrayList:8,5,5,2
目標值:10
OUTPUT:5,5,5,5
這是不正確。輸出應該是:8,5,5,2!我的循環跳過了第一次和最後一次比較,並添加了我不想要的額外值。任何人都可以解釋如何正確設置這些循環?
那是我用之前的測試值。我忘了刪除那一行。我沒有使用它,但有人指出我確實有我的j = 1,當它應該在j = 0時開始。所以,謝謝你是我的代碼中仍然存在的同一類型的問題! –