当条件为假时,如何停止每个循环的继续进行?因为当集合中的所有对象都符合条件时,我只能让x = newX
。谢谢你的帮助。休息不会有帮助,我试过了。一旦遇到条件,你如何在循环中停止搜索
for (char h : collection){
if (condition == false)
{
}
else{
x = newX;
}
}
当条件为假时,如何停止每个循环的继续进行?因为当集合中的所有对象都符合条件时,我只能让x = newX
。谢谢你的帮助。休息不会有帮助,我试过了。一旦遇到条件,你如何在循环中停止搜索
for (char h : collection){
if (condition == false)
{
}
else{
x = newX;
}
}
最简单的方法是使用break语句。但是,只有在列表中的所有元素都通过某些条件时才想设置新的x值。
boolean allMatch = true;
for (char h : collection) {
if (!condition) {
allMatch = false;
break;
}
}
if (allMatch) {
x = newX;
}
如果你想检查是否SOF循环中的所有元素都匹配,你可以使用Java 8功能的一些条件:
boolean allMatch = list.stream().allMatch(element -> condition);
if (allMatch) {
x = newX;
}
'allMatch = allMatch && condition;'这一行是不必要的。在第一个if语句中放入'allMatch = condition'或甚至'allMatch = false'就足够了。 –
是的,但是,为什么更新每个循环中的值?只有在条件不匹配的情况下才能做到这一点。 – Beri
你的意思是哪个值?如果你的意思是'allMatch',那正是我指出要避免的。因为**现在**它没有更新任何迭代,只是在最后(在“break”之前)。 –
使用break;
声明break
时,如果条件为真。
for (char h : collection) {
if (condition == false) {
break;
} else {
x = newX;
}
}
break
语句退出循环。因此
你举的例子是这样的:
for (char h : collection){
if (condition == false)
{
break;
}
else{
x = newX;
}
}
了解更多关于在official documentation break语句。
使用break;
关键字。
它会最终打破循环,并在条件满足后退出!
也许你可以用一个标志工作,如果else块只需要进行一次
boolean test=true;
for (char h : collection) {
if (condition == false) {
test=false;
break;
}
}
if(test){
x=newX;
}
执行可悲的是你的问题不是很清楚。也许你可以举个例子来说明条件,例如
使用break;退出循环 –
'break'将有所帮助。这是摆脱循环的标准方式(因此名称)。 – Kayaman
“休息不会,我试过”。它确实有帮助。如果这不是你想要的,那么请解释一下。 –