Mennyire "ronda", "szentségtörés" GoTo-t használni manapság?










C#-ban valóban az! De láttam már olyat, amit azzal volt a legegyszerűbb megoldani (más programnyelvekben).
c# esetén teljesen fölösleges goto-t használni... minden megoldható nélküle és áttekinthetőbb a kód





A "Goto" utasítás igazi aranykora akkor volt, amikor még fénykorukat élték a Commodore gépek, vagyis 1980-as évek. Akkor ugyanis nem volt még 10 000 000 különböző programozási nyelv, hanem volt a BASIC, a kezdőknek és az ASSEMBLY a haladóknak... ...arra ne térjünk ki, hogy többfajta PET számítógép is volt és egyesek (Pl. Amiga) képes volt Pascal-t is forídtani...
Pl.: Egy BASIC program
10 SCNCLR
20 PRINT"HELLO WORLD!"
30 GOTO 20
A Pascal ugyanis már struktúrált programozási nyelv, amely nem tartalmaz a programsorok azonosítására szolgáló sorszámokat.
Pl.: Egy Pascal program
Program HelloWorld;
Uses Crt;
Begin
ClrScr;
While (true) Do WriteLn('Hello World!');
End.
Ha összehasonlítjuk a kettőt, tulajdonképpen a másodikra mondják azt, hogy egyszerű, holott látszik, hogy ez nem igaz.
Pl. Egy C# program
using System;
namespace HelloWorld
{
class Program
{
public static void Main(string[] args)
{
while (true) Console.WriteLine("Hello World!");
}
}
}
Hasonlítsátok össze a 3 variációt, elvileg egyszerűsödött.
Hááát... ...és még nem beszéltünk a Java-ról és az Android-ról.
Összegezve tehát a strukturált programozási nyelv azért jobb, mert ha utólag még be akarsz szúrni egy plussz sort, azt könnyeben megteheted, mint BASIC-ben, ott előre kellett gondolkozni, manapság már nem muszáj... :-)
Nem ragozom! :-)










Meg tudjátok mondani, hogy mely időszak fontosabb programozási nyelveit ábrázolja a kép?
Az 1980-as években még előszeretettel használtak az iparban FORTRAN-t. A nyelvet, amit akkoriban hiába próbáltak strukturált programok írására képesíteni.










Semennyire nem az, alacsony szintű megoldásnak kiváló.
Viszont alacsony szintű megoldást idiotizmus használni akkor, ha nem tudod pontosan és teljes meggyőződéssel ezt megindokolni.
Vagyis neked tanulóként nem nagyon lesz goto-ra szükséged.





ha c#ba beleírsz egy gotot, akkor dobbhatod a szemétbe az egész nyelvet, és írjál inkább assemblyt
nem azért van a sok paradigma meg egyéb marhaságok, hogy szívassanak vele, de majd rájössz





A goto annak a felfogásnak az eleme, ahol a program egy utasításhalmaz egy lineáris térben (tárban), ahol valamilyen módon a tér egyes elemei azonosítottak. BASIC-ben ezek sorszámok, nem sorszámozott nyelvekben pedig címék. A program vezérlése pedig ebben a lineáris, szerkezet nélküli térben való ugrálás formájában valósul meg.
A modern, strukturált nyelvek segítségével megfogalmazott programok alapvetően hierarchikusak (fa struktúrájúak), ahol a vezérlés a fa egyes csúcsaiba való be és kilépés formájában realizálódik (tehát nem ugorhatunk a fa tetszőleges részére) és a fordító készít végül goto-kat (pontosabban JUMP utasításokat). Ez az utóbbi világ egy olyan absztrakció, amely segít könnyebben érthető és megírható programok elkészítésében.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!