Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Goto

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Goto arba dar kai kur vadinama Go To - legendarinė komanda arba tiksliau operatorius, kuris kažkada buvo visose programavimo kalbose, ale paskui vis labiau ir labiau ėmė nykti, nes kažkokie ten labiau prityrę programuotojai labai keikėsi, kad dėl šito daikto visos bėdos ir jei jo nebūtų, tai neliktų bugų.

Visada galima atpažinti lamerius pagal tai, kad jie galvoja, jog Goto yra tvarkoje ir visai niekam jis netrukdo ir kartais jo reikia ir panašiai.

Daugumoje kalbų Goto taip ir vadinamas kaip Goto, bet pirmoje kalboje, kur jis atsirado, jis vadinosi kaip GO TO. Ta kalba buvo Fortranas ir iki šiol yra gana plačiai naudojama.

Visgi kartais Goto reikia

Yra visgi atvejų, kai Goto operatoriaus prireikia - visų pirma tada, kai programavimo kalba nesuteikia kokių nors priemonių išėjimui iš kokio nors ciklo. Tiksliau, kai programuotojas yra lameris ir nemoka ciklo parašyti taip, kad tų priemonių nereiktų. Visgi paprastai tokiais atvejais būna koksai nors break operatorius ar koks nors panašus.

Išties gi būna, kad yra ir programavimo kalbų, kur išvis nėra jokių ciklų ar dar kažko panašaus. Tai tada reikia kaip nors ciklą padaryti. Tai tada gi tenka apsieiti kokiais nors ifais. O tada tai jau niekaip nesigauna be goto. Čia jeigu kartais gyvenime prireiks, tai žinokite, kaip tą reikia daryti, kad nesupistumėte viso savo kodo taip, kad jis pavirsta į nepataisomą šūdą. Todėl jums pavyzdį pateiksim, kaip gražiai daryti, kad Goto jums visko nesupistų.

Štai jums čia pavyzdys su paprastu Basic, kaip kad koksai Vilnius Basic ar panašus:

10 REM Kažkoksai tenai kodas, kurį darote
20 X$ = 0
30 REM CIKLOPRIEKIS
40 IF X$ = 10 GOTO 80
50 X$ = X$+1
60 REM Kažką čionai darome ciklo viduje
70 GOTO 30
80 REM CIKLOGALAS

Kaip matome, su Goto galima padaryti labai paprastą ir tiesioginį While ciklo ekvivalentą: jei ciklo sąlygos tikrinimas pavyko, tai iš ciklo išeiname, bet jei nepavyko, tai tęsiame. Būtent taip yra daroma, kai programuojama asembleriu:

; Kažkoksai tenai kodas, kurį darote
Mov CX, 0
CIKLOPRIEKIS:
Cmp CX, 10
Jz CIKLOGALAS
Inc CX
; Kažką čionai darome ciklo viduje
Jmp CIKLOPRIEKIS
CIKLOGALAS:

Žodžiu, susigaudyti čia galima, bet tik su sąlyga, kad labai jau apgalvotai ir tikslingai tai darote. Bet jei programavimo kalba palaiko normalius ciklus, tai visada galima jokio to Goto nenaudoti, o tada ir paprasčiau viskas, nes nereikia čia tų nesąmoningų šokinėjimų iš kažkur į kažkur, per kuriuos paskui niekoa neįmanoma atsekti.