In connection with Reiss's post you can have multiple conditions for your ending (which can act as a break)
bool breakAll = false;
for (condition1 && !breakAll)
{
for(condition2 && !breakAll)
{
for(condition3 && !breakAll)
{
if (myBoolean == false)
{
breakAll = true;
break;
}
}
}
}
The gotcha is that if there is any logic after the embedded for loops it will also run.
For example
bool breakAll = false;
for (condition1 && !breakAll)
{
for(condition2 && !breakAll)
{
for(condition3 && !breakAll)
{
if (myBoolean == false)
{
breakAll = true;
break;
}
}
CallThisMethodEvenIfBreakAllIsTrue();
}