for($i = 0; $i < 100; $i++){ if(i == 5){ break 2; } }}
for y in 0..5{ if y >2 { break 'outer } }}
foreach(...) { if (condition == true) break 2; }}
'inner: for y in 0..5 { if condition == true { break 'outer; } }}
PHP EXAMPLE <?php for(init counter; test counter; increment counter) { for(init counter2; test counter2; increment counter2) { ... if($a > $b) { break 2; //multi-level break if $a > $b } } } ?>
RUST RECODE fn main() { let x: i32 let y: i32 let mut i = 0; let mut j = 0; while i < 100 { while j < 100 { if(x == y){ break; } j = j + 1; } if(x == y){ break; } i = i + 1; } }(Edited: 2021-10-27)
in PHP multi level break is performed with the keyword break followed by a number indicating how many level to break from so break 4 would exit out of a loop depth of 4.
Example
PHP:
for($i = 0; $i < 10; $i++){ for($j = 0; $j < 5; $j++){ if($j == 3) break 2; } }
Rust
for i in 0..10{ for j in 0..5{ if j == 5 break; } if j == 5 break; }
for($i = 0; $i < 100; $i++){ for($j = 0; $j < 20; $j++){ if($j == 20){ echo "Break 1 at "; echo $j; echo "\n"; break 1; } if($i == 50){ echo "Break 2 at "; echo $i; echo "\n"; break 2; } } }} ?>
'outer: for i in 0..100{ inner: for j in 0..20 { if j == 20{ println!("Break 1 at {}", i); break 'inner; } if i == 50 { println!("Break 2 at {}", i); break 'outer; } } }}
php while(true) { while(true) { if($var3) break 2; } } rust while(true) { let breakOuter = false; while(true) { if(var3) breakOuter=true; } if(breakOuter) break; }
for($j=0;$j<5;$j++){
if($i == 4){ break 2; } }}
for y in 0..10 { if y > 5{ break 'outer } println!("x: {}, y: {}", x, y); }}
PHP
<?php
for($i=0;$i<4;$i++){for($j=0;$j<1;$j++){ if($i == 2){ break 2; } }} echo 'i = '.$i; //Output i = 2 ?> |
Rust
fn main() {
let mut i = 0;
let mut j = 0;while i < 4 { while j < 1 { if i == 2 { break; } j = j + 1; } if i == 2 { break; } i = i + 1 } println!("{}", i); //Output i = 2} |
foreach($arr as $val){ foreach($arr1 as $innerval){ if ($innerval == $val){ break 2; } } }?>
while b < arr.len(){ if b == 3 { break a[b]; }else{ while b<3 { if a[b] == 4 { break a[b]; } b+=1; } } b+=1 }
for ($y = 0; $y <= 10; $y++) { if(x + y == 16) break 2; }}
Rust:
'inner: for j in 0..10 { if i + j == 16 { break 'outer; } }}