[英]Java - break in while loop does not work
我有这样的代码
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");
}
}
当获取布尔值“ false”时,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
表示保存成功,但中断无效。我尝试了“ Outer:”和“ break Outer;”。 功能,但也失败了。
希望您理解我在说什么,请帮助,谢谢!
现在将无法保存
是输出中的最后一条语句。 之后没有其他语句被打印,这清楚地表明执行else
子句后while循环已终止。 循环终止将仅由于以下两个原因而发生:
setIterator.hasNext()
返回false
break
语句已执行(对我来说似乎更可能) 您也可以简单地将if(player.isLocationExists(id_key) == true)
替换为if(player.isLocationExists(id_key))
您正在看到预期的结果。 break
中断循环,而不是if else
子句。 如果代码到达现在打印的位置,它将NOW WILL BREAK AND NO SAVE
,它将永远不会尝试其余的else
子句。
也许您正在寻找continue
? 它将仅中断循环的当前迭代。 -edit-但是,在您的情况下完全没有必要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.