这是独家新闻。我有一个程序循环遍历 ArrayList 并检查值是否等于输入的关键字(inputArray[0]
)
我想添加一个默认操作以防万一inputArray[0]
不等于其中的任何值keyList
这else if
就是我遇到问题的地方。我希望我的循环在keyList
使用“最后的手段”之前遍历所有值 - 一个 else 语句。现在我的问题是,在第一个 if 语句中,它看到inputArray[0]
不等于keyList[x]
,它进入 else 语句而没有经过另一次循环运行。
如您所见,我尝试使用 else if 语句,如果我的循环计数器 x 大于 keyList 的大小,那么它将执行内部代码,但这似乎不起作用。我还添加continue;
到 else 语句以确保它正在通过循环,根据控制台,它是。(我知道是因为System.out
循环开头的语句。)
public static void wikiInit(ArrayList keyList, ArrayList nameList, ArrayList domainList, ArrayList softwareList, String[] inputArray, EntityPlayer player)
{
System.out.println("These are the current lists:");
System.out.println("Key List: " + keyList);
System.out.println("Name List: " + nameList);
System.out.println("Domain List: " + domainList);
System.out.println("Software List: " + softwareList);
// KEY PARSER
for(int x = 0; x < keyList.size(); x++)
{
System.out.println("Starting the loop");
if((keyList.get(x)).equals(inputArray[0]))
{
//getWikiName = wikiNameArray[x]
//getWikiDomain = wikiDomainArray[x]
//getWikiSoftware = wikiSoftwareArray[x]
StringBuilder hyperlinkBuilder = new StringBuilder();
for(int y = 1; y < inputArray.length; y++)
{
hyperlinkBuilder.append(inputArray[y] + " ");
}
if((softwareList.get(x)).equals("MEDIAWIKI"))
{
String hyperlink = "http://" + domainList.get(x) + "/index.php?search=" + hyperlinkBuilder.toString();
System.out.println("Searching for " + hyperlinkBuilder.toString() + " on the " + nameList.get(x));
player.addChatMessage("Searching for " + hyperlinkBuilder.toString() + " on the " + nameList.get(x));
BrowserHandler.browserInit(hyperlink.replace(" ", "+"), player);
System.out.println("Opening " + hyperlink.replace(" ", "+"));
break;
}
}
else if(x > keyList.size())
{//LAST RESORT
}
else
{
continue;
}
}
}