{"name":"breakTo","operator":null,"title":"breakTo","type":"command","url":"https://community.bistudio.com/wiki/breakTo","revid":364900,"updated":"2024-06-29T14:38:35Z","groups":["Program Flow"],"status":"ok","replaced_by":[],"games":[{"game":"arma1","name":"Armed Assault","version":"1.00"},{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma1","name":"Armed Assault","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"Breaks block to scope named *name*.\n\nScope name can be assigned using the scopeName command.","syntaxes":[{"syntax":"breakTo name","since":null,"effect":null,"exec":null,"params":[{"name":"name","type":"String","optional":false,"default":null,"description":null,"types":["String"],"since":null,"text":"name: String"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"unary","operator":null,"left":null,"right":{"text":"name","types":["String"]}}],"examples":[{"text":"```sqf\nscopeName \"main\";\nwhile { true } do\n{\n    scopeName \"loop1\";\n    while { true } do\n    {\n        scopeName \"loop2\";\n        if (condition1) then { breakTo \"main\" };    // breaks all scopes and return to \"main\"\n        if (condition2) then { breakOut \"loop2\" };    // breaks scope named \"loop2\"\n        sleep 1;\n    };\n    sleep 1;\n};\n```","code":["scopeName \"main\";\nwhile { true } do\n{\n\tscopeName \"loop1\";\n\twhile { true } do\n\t{\n\t\tscopeName \"loop2\";\n\t\tif (condition1) then { breakTo \"main\" };\t// breaks all scopes and return to \"main\"\n\t\tif (condition2) then { breakOut \"loop2\" };\t// breaks scope named \"loop2\"\n\t\tsleep 1;\n\t};\n\tsleep 1;\n};"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["scopeName","breakOut","exitWith"],"notes":[{"user":"Nelis75733126","date":"2017-05-18T18:19:00Z","text":"I wish to clarify the behaviour of this command by saying that the `breakTo` command will literally break the scope in which it has been placed, and continue reading whatever is after and outside of that scope.\n\nExample:\n\n```sqf\nscopeName \"something\";\nif true then\n{\n    breakTo \"something\";\n    _v = 0;    // this line will be skipped\n};\n\n_a = 0;        // this is where script execution will jump to.\n```"}],"categories":["ArmA: Armed Assault: New Scripting Commands","ArmA: Armed Assault: Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Program Flow","Introduced with Armed Assault version 1.00","Scripting Commands","Take On Helicopters: Scripting Commands"]}