我環路只檢查數組,這使我的代碼的第一個項目失敗每次:我環路只檢查第一陣列項目
String igitems = "IgnoredItems";
String items = getConfig().getString("IgnoredItems.itemid");
items = items + args[0] + ",";
String[] myarray = items.split(",");
for(String fitem : myarray) {
if(!fitem.equals(args[0])){
getConfig().set(igitems + ".itemid", items);
saveConfig();
reloadConfig();
sender.sendMessage(prefix + ChatColor.GREEN + "Added " + ChatColor.GOLD + args[0] + ChatColor.GREEN + " to ignore list.");
break;
} else {
sender.sendMessage(prefix + ChatColor.RED + "Item is already in the list");
break;
}
}
如果我添加system.out.print(myarray);
後String[] myarray = items.split(",");
它顯示了整個陣列,這是正確的:
1:0
2:0
5:0
8:0
5:0
但是,當我添加system.out.print(fitem);
後for(String fitem : myarray){
它顯示了從陣列(1:0)僅第一項至極讓我的代碼,除非它的第一個項目,幾乎每一次失敗。
對'if'和'else'部分中的'break'是否有意義? – manouti 2014-10-27 21:48:11
它應該只發現一次,如果它發現它,這就是爲什麼我打破它。 – ax752 2014-10-27 22:01:29
如果還有其他問題,你正在打破。因此,您正在檢查第一個元素,並導致中斷,即使它不相等。從'else'中刪除中斷 – 2014-10-27 22:07:27