Core Function Goto Label
From Sputnik Wiki
Goto Label; & Label:
Description
Jump to another section of the script
Remarks
This is a universal *jump to anything you can see* it can jump through pretty much every scope it can find and what not.
That doesn't mean it's perfect far from it it may never find the label or it might find it right away or it might take a second to find it... Who knows?
Think of it as a kind of multilayer break statement.
People often avoid using "goto" statements in languages because they tend to be slow and a very poor way of solving a problem yet its here if you want it.
It is worth noting that Goto is a pretty slow thing to use.
If a label cannot be found an exception will occur.
Example
goto Begin; Above: println( "Hello Above" ); goto Below; Begin: println( "Hello" ); goto Above; Below: println( "Hello Below" );
Goto can be pretty crazy in where it can jump you to for example:
{ if( "Cat" == "Dog") { if( "Cat" == "Dog") { } else { while(false) { switch(100) { case 1: { } break; case 2: { fox: say "FOX!!!!!!!!!!!!!!!!!"; goto finish; } break; case 3: { while(false) { foreach("lol" as $c) { for($i = 0; $i < 10; $i++) { for( 0 .. 30 as $k ) { cat: say "CAT!!!!"; goto fox; } } } } } break; case 4: { } break; } } } } } say "Begin"; goto test; if(1==2) { say "Test"; test: say "Hello"; } say "End"; goto cat; finish: say "OK I'm done"; // Prints: // Begin // Hello // End // CAT!!!! // FOX!!!!!!!!!!!!!!!!! // OK I'm done