我有这样的代码
while(setIterator.hasNext()){
String key = setIterator.next();
if(key.equalsIgnoreCase("location_id")){
containlocationid = true;
int id_key = Integer.parseInt(requestMap.get(key));
if(player.isLocationExists(id_key) == true){
player.setlocationID(Integer.parseInt(requestMap.get(key)));
responseOut.println("NOW WILL NOT BREAK AND SAVE");
}else{
responseOut.println("NOW WILL BREAK AND NO SAVE");
break;
}
}else if(key.equalsIgnoreCase("name")){
player.setName(requestMap.get(key));
responseOut.println("this is inside NAME");
}else if(key.equalsIgnoreCase("description")){
player.setDescription(requestMap.get(key));
responseOut.println("this is inside DESCRIPTION");
}
}
当得到布尔值"假"时,while循环将断开并打印"现在将打破并且不会保存"。但现在我得到了这样的结果
this is inside NAME <- this will not print out after break while loop
this is inside DESCRIPTION <- this will not print out after break while loop
NOW WILL BREAK AND NO SAVE
意味着它成功保存并且休息不起作用。我尝试了&#34;外部:&#34; &安培; &#34;打破外面;&#34;功能但也失败了。
希望你明白我在说什么,请帮助,谢谢!
答案 0 :(得分:0)
现在会破裂而且不会保存
是输出中的最后一个语句。之后不会打印其他语句,这清楚地表明while循环在执行else
子句后已终止。
循环终止只会因为两个原因而发生:
setIterator.hasNext()
返回false
break
语句被执行(看起来对我来说更可能)您也可以使用if(player.isLocationExists(id_key) == true)
if(player.isLocationExists(id_key))
答案 1 :(得分:0)
您正在看到预期的结果。 break
打破循环,而不是if else
子句。如果
代码到达它永远不会打印NOW WILL BREAK AND NO SAVE
的点
尝试剩余的else
条款。
也许您正在寻找continue
?它只会打破当前的迭代
循环。 -edit-但是,在你的情况下完全没有必要。