Ono, na goto/jump neni nic spatneho. Jen se to musi pouzivat spravne.
Goto je prikaz, ktery pouzivaji struktury typu cyklus, funkce, procedury, casovace, switch, if... vsechno, kde se nejakym zpusobem odskakuje.
To, co zavrhuje on je pouzivat to mimo linearni struktury, protoze pak se jen tezko orientuje v tom, co program dela nebo, co priste udela. Dobry programator si s tim poradi, ale novacek se ve svem kodu nedokaze pak vyznat.label1: goto label3
label2: goto label3
label3: goto label4
label4: goto label1A mezi temi prikazy jsou dalsi goto odskoky a jine prikazy, podminky. Proste, takhle se v tom nevyznate. A pritom muze jit jen o obycejny while, for cyklus nebo jednoduchou if podminku.
Ale, samozrejme, nektere slozitejsi problemy by bylo uspornejsi resit prave pres goto. Linearni struktury pridavaji treba desitky skoku navic, zpomaluji program. Disassembler vam z EXE zpetne da ASM kod programu, neni problem. Ale uz to nedokazete prevezt do bezneho prog. jazyka, ktery nezna goto prikazy :) To je takova dalsi nevyhoda. Nebo vyhoda, ze se ve vasem programu nedokaze orientovat kde kdo, nepozna treba slepe ulicky atd... Byl by to dobry zpusob proti hackerum. Jen ti nejlepsi by takovou ochranu dokazali obejit.