MERGI LA

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
( EN )

"Codul care se bazează pe declarații Goto este, în general, mai greu de înțeles și de întreținut decât codul fără gotos. Deși nu suntem dogmatici în legătură cu această chestiune, se pare că afirmațiile goto ar trebui utilizate rar, chiar dacă este deloc ".

( IT )

„Codul care folosește instrucțiuni de trecere este, în general, mai dificil de înțeles și de gestionat decât codul fără trecere. Deși nu suntem dogmatici în legătură cu această chestiune, se dovedește că afirmațiile goto ar trebui folosite rar, dacă este deloc. "

( Brian Kernighan și Dennis Ritchie, Limbajul de programare C )

În informatică , GO TO sau GOTO (literalmente „du-te la”) este o instrucțiune de control al fluxului de execuție . Este furnizat în diferite limbaje de programare și vă permite să faceți salturi necondiționate de la un punct la altul din cod . În trecut a fost adesea folosit, totuși utilizarea sa a fost adesea necorespunzătoare ( cod spaghetti ), făcând un algoritm sau o procedură ilizibilă sau dificil de înțeles.

Descriere

Această instrucțiune este prezentă în Fortran , ALGOL , COBOL , SNOBOL , BASIC , Lisp , C , C ++ , Pascal , Perl , PHP (din versiunea 5.3) și multe altele mai puțin cunoscute. În Asamblare și, în general, în limbaje de nivel scăzut , este o instrucțiune fundamentală pentru a controla fluxul de instrucțiuni (și pentru a vă adapta la limbaje de programare care nu o folosesc în mod deliberat).

În ansambluri corespunde unei instrucțiuni de salt și poate fi apelat cu nume diferite: BRA (din „ramură”), JP, JMP sau JUMP cu toate variantele lor condiționate (zero, diferit de zero, carry etc.)

A fost foarte popular în limbile numerelor de linie (învechite), cum ar fi BASIC . Sintaxa a fost:

 MERGI LA număr din linia

Alte limbi fără numere de linie, cum ar fi C sau PHP , utilizează etichete care identifică adresa codului la care doriți să accesați.

În limbile de nivel înalt poate fi folosit pentru a ieși rapid de bucle adânc imbricate. În zilele noastre, utilizarea acestei instrucțiuni în astfel de limbaje este considerată, în general, un semn de programare proastă (așa-numitul „ cod spaghetti ”) deoarece încalcă elementele de bază ale programării structurate .

După cum demonstrează teorema Böhm-Jacopini , o codificare atentă poate evita recurgerea la instrucțiunile GOTO, deși este uneori necesar să se introducă variabile suplimentare sau o construcție logică suplimentară. Cu toate acestea, absența GOTO face codul mai ușor de analizat.

Cu toate acestea, în limbile care nu prevăd excepții sau în scrierea sistemelor de operare, salturile necondiționate în cod pot fi o alegere valabilă în cazul revenirii operațiilor sau alocării resurselor alocate prin pași succesivi, atunci când într-unul dintre acești pași se stare de eroare. Codul sursă al kernel-ului Linux este ambalat cu GOTOS, adesea vizând acest scop.

Exemple

Următoarele exemple imprimă toate 10 linii numerotate consecutiv

Limbaj de bază

Exemplu de utilizare a instrucțiunii goto

 10 LĂSA the = 1
 20 IMPRIMARE the
 30 LĂSA the = the + 1
 40 DACĂ the < 10 ATUNCI MERGI LA 20

Exemplu de programare structurată fără a merge

 10 LĂSA the = 1
 20 DO
 30 IMPRIMARE the
 40 LĂSA the = the + 1
 50 BUCLĂ IN TIMP CE the < 10

Limbajul C / C ++

Exemplu de utilizare a instrucțiunii goto

 int i = 1 ;
 eticheta :
 printf ( "linia% d \ n " , i ++ );
 if ( i < 10 ) merge la etichetă ;

Exemplu de programare structurată fără a merge

 int i = 1 ;
 face {
 printf ( "linia% d \ n " , i ++ );
 } while ( i < 10 );

Curiozitate

În jocul video Star Wars: Knights of the Old Republic II: The Sith Lords există un personaj numit G0-T0 sau Goto, care este un droid cu probleme de programare.

Elemente conexe

  • Comefrom O structură de control care își propune să fie cea mai întunecată dintre GOTO [ necesită citare ]

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT