Instrukcja skoku: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
lit. |
m -bezsensowne przykłady, które niczego nie prezentują ("drugi jest prostszy" - nie dziwne, skoro był pisany by być obskurny, kod w C nie ma żadnego odzwierciedlenia praktycznego - co ten kod ma robić? |
||
Linia 1:
'''goto''' to nazwa
Instrukcja <tt>goto</tt> może zaciemniać strukturę programu (zwłaszcza, gdy skok odbywa się między dwoma nie związanymi ze sobą blokami kodu, np. z ciała jednej [[Klasa_(programowanie)|klasy]] do drugiej), dlatego zaleca się unikać jej stosowania, zastępując <tt>goto</tt> innymi konstrukcjami programowymi.
== Przykład ==
<pre>
goto C;
Linia 17 ⟶ 18:
</pre>
Wynikiem działania powyższego programu jest wydrukowanie napisu "Ala ma kota".
== Jak można sterować przepływem kontroli ==
Aby sterować przepływem kontroli w programie w sposób, który umożliwia zaprogramowanie każdego diagramu przepływu czy każdego [[automat o skończonej liczbie stanów|automatu o skończonej liczbie stanów]] bez duplikacji kodu wystarczy jedna instrukcja <tt>if (warunek) { goto X; }</tt>, ze szczególnym przypadkiem <tt>if (prawda) { goto X; }</tt>. Tak jest to rozwiązane na poziomie [[asembler]]a - dostępne są jedynie instrukcje skoku bezwarunkowego (na Intelopochodnych <tt>JMP</tt>) i warunkowego (na [[x86|Intelopochodnych]] <tt>JZ</tt>, <tt>JNZ</tt>, <tt>JG</tt>, <tt>JC</tt> itd, gdzie literki po <tt>J</tt> oznaczają stan flag oznaczających wynik ostatniej operacji).
Linia 81 ⟶ 53:
[[tr:GOTO]]
[[uk:Безумовний перехід]]
<br />
|