dzikidziku napisał(a):
Z tego co widziałem, sporo osób odradza używanie polecenia "goto", natomiast nigdzie nie znalazłem, dlaczego jest ono tak obciążające.
goto nie jest obciążające
. Po prostu nie jest zalecane jego używanie ponieważ ma więcej minusów w zastosowaniu niż plusów.
- Po pierwsze zawsze da się tak napisać kod, aby uniknąć jego stosowania. W twoim przypadku można zastosować polecenia break, continue itp., oraz inaczej napisać kod, aby nie było potrzebne jego stosowanie. Konkretnie to ciężko podpowiedzieć bo nie wiadomo co twój kod ma robić, jakieś komentarze by się przydały i ogólnie opis. Zawsze można inaczej w ogóle algorytm przygotować, który nie wymaga tak jak teraz u ciebie goto
- Po drugie robienie takich nieprzewidzianych skoków w programie zaciemnia kod i powoduje, że jak jest on bardziej rozbudowany to bardzo trudno jest znaleźć błąd jak się pojawi, nie ma się tak na prawdę żadnej kontroli nad działaniem programu, którą dają np funkcje itp.
- Po trzecie jeden skok jest w miarę łatwy do zastosowania w krótkim kodzie natomiast spróbuj coś napisać używając 10 goto, a później po jakimś czasie, miesiącu, pół roku wróć do kodu i spróbuj odgadnąć co on faktycznie robi
Dodatkowo jeżeli skoki zagnieżdżają się to już w ogóle ciężko jest cokolwiek sprawdzić i ostatecznie analiza zajmuje dużo więcej czasu niż napisanie innego kodu bez goto
Ogólnie jedyny plus goto jest taki, że w krótkim i prostym kodzie jest po prostu łatwiej go zastosować w niektórych przypadkach jednak dla elegancji i nauki dobrych nawyków programowania odradza się iść na skróty i lepiej dla szarych komórek pokombinować używając innych poleceń i możliwości jakie daje język c. Zaprocentuje Ci to przy bardziej złożonych projektach i zagwozdkach programistycznych
Jednak ostatecznie liczy się osiągnięty cel i czy działa poprawnie algorytm więc jak działa i są tam goto to nikt nie powinien mieć o to pretensji :>
O mistrz Mirek mnie wyprzedził