GOTO ve benzeri komutlar, x86 assemblydeki "jmp" (jump) komutunun mantığından türeme, oldukça ilkel, okumayı zorlaştırıyor, birbirinden bağımsız alakasız şeyler yapmanıza ve ordan oraya zıplamanıza izin veriyor vs..vs... Sonuçta asm gibi dillerde döngü oluşturma, alt rutinler vs.. bu şekilde oluşuyor...Yapısal programlamada alt rutin, döngü yapıları vs.. her türlü araç gereç var, o yüzden "goto" ya gerek yok. Öyle programın bir ucundan bir diğer ucuna atlamak gibi bir programlama mantığı da yok, ihtiyaç da yok... Yüksek seviyeli bir dilde GOTO kullanan birisi ya cidden bilgisiz ya da değişik fantaziler peşinde olabilir ancak (mazoşist filan olabilir). C#' da var mesela; neden var, kim kullanır cidden merak ediyorum. Yüksek seviyeli bir dil için "worst practises" listesinin tepesinde yer alır rahatlıkla...BASIC' ın ilk sürümlerinde de bu dilin çıkış noktasıyla tamamen çelişen bir komut aslında "goto" ama o zaman mecburdular demek ki...