ΠΠΏΠ΅ΡΠ°ΡΠΎΡ next (Π°Π½Π°Π»ΠΎΠ³ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° continue Π² ΡΠ·ΡΠΊΠ΅ C) ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π°ΡΠ°Π² Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΈΠΊΠ»Π°. ΠΠΎΡ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² next:
$i = 0; while ($i < 10) { # ΠΏΠΎΠΊΠ° ΡΡΠ΅ΡΡΠΈΠΊ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ 10 $random = rand; # ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ if ($random > 0.5) { # ΡΠΈΡΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ 0.5 next; # ΠΠ ΠΠΠ£Π‘ΠΠΠΠ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° } print "\n", $random; # Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΡΠ»ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ $i++; # ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ next }
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ redo ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΈΠΊΠ»Π°. ΠΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ redo:
$i = 0; while ($i < 10) { # ΠΏΠΎΠΊΠ° ΡΡΠ΅ΡΡΠΈΠΊ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ 10 # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ redo $random = rand; # ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ if ($random > 0.5) { # ΡΠΈΡΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ 0.5 redo; # Π‘ΠΠΠΠ ΠΠΠ§ΠΠΠΠΠ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ΅Π»Π΅ ΡΠΈΠΊΠ»Π° } print "\n", $random; # Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΡΠ»ΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ $i++; # ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ }
ΠΠΎ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ continue. Π Π½Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠΊΠ»Π°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ next. ΠΠ΅ΠΉΡΡΠ²ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ continue Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ ΠΏΠΎ last ΠΈ redo. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, Π½ΠΎ Π³ΠΎΠ»ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² Perl ΠΊΠ°ΠΊ ΡΠΈΠΊΠ», Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. Π ΡΠ°ΠΊΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Π° continue ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ last, next ΠΈ redo. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠ° continue ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊ:
# ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΈΠΊΠ»Π°: while, until ΠΈΠ»ΠΈ for { # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ redo # Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 1, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π² ΡΠΈΠΊΠ»Π΅ if (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π°) { last; # Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΠΈΠΊΠ»Π° } # Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 2, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π² ΡΠΈΠΊΠ»Π΅ if (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ) { next; # Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° } # Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 3, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π² ΡΠΈΠΊΠ»Π΅ if (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ) { redo; # Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π° ΡΠΈΠΊΠ»Π° ΡΠ½Π°ΡΠ°Π»Π° } # Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ N, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π² ΡΠΈΠΊΠ»Π΅ # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ next } continue { # Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠΊΠ»Π° } # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ last
Π¦ΠΈΠΊΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½ Π² Π΄ΡΡΠ³ΠΎΠΉ. ΠΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ», ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ ΡΡΠ°Π²ΠΈΡΡΡ ΠΌΠ΅ΡΠΊΠ°. ΠΠ΅ΡΠΊΠ° - ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ², Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ Π±ΡΠΊΠ²Ρ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠΈΡ Π·Π½Π°ΠΊ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ. Π‘ΠΎΠ±Π»ΡΠ΄Π°Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΊΠΈ Π·Π°Π³Π»Π°Π²Π½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΌΠ΅ΡΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΡΠ²Π°ΡΡ:
CYCLE_1: while (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° 1) { CYCLE_2: while (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° 2) { if (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π²ΡΠ΅Ρ ΡΠΈΠΊΠ»ΠΎΠ²) { last CYCLE_1; } CYCLE3: while (ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° 3) { if (ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ 2-Π³ΠΎ ΡΠΈΠΊΠ»Π°) { next CYCLE_2; } } # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ next CYCLE_2 } } # ΡΡΠ΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ last CYCLE_1
ΠΠ΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π²ΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΎΠΌ Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ switch Π² ΡΠ·ΡΠΊΠ΅ C. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $say Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΡ:
SWITCH: { unless (defined $t) { # Π΅ΡΠ»ΠΈ $t Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ $t = 25; redo SWITCH; # Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ } if ($t < 10) { $say = 'Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎ'; last SWITCH; } if ($t < 18) { $say = 'ΠΏΡΠΎΡ Π»Π°Π΄Π½ΠΎ'; last SWITCH; } if ($t < 27) { $say = 'ΡΠ΅ΠΏΠ»ΠΎ'; last SWITCH; } $say = 'ΠΆΠ°ΡΠΊΠΎ'; } print "Π‘Π΅Π³ΠΎΠ΄Π½Ρ $say\n";
Π Perl ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° goto, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΊΠΈ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π² Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ΅. ΠΠΎ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΡΠ΅Π±ΡΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΡΠΈΠΊΠ» for. ΠΡΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ.
1ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΠΈΡ ΠΌΠ΅ΡΠΊΠ°:
goto ΠΠΠ’ΠΠ;
2ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ ΠΌΠ΅ΡΠΊΠ΅, ΠΈΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
goto Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅;
3ΠΠ°ΠΌΠ΅Π½Π° Π²ΡΠ·ΠΎΠ²Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Perl):
goto &ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°;
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ goto Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠ²Π°Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π₯ΠΎΡΡ goto ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΈΠΊΠ»Π°, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ last.
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ° Π»ΡΠ±ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²:
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ if Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ unless Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ while Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ until Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ foreach ΡΠΏΠΈΡΠΎΠΊ
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°Π΄Π°Π΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π² ΡΠ»ΡΡΠ°Π΅ if ΠΈΠ»ΠΈ unless) ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ (Π² ΡΠ»ΡΡΠ°Π΅ while, until ΠΈΠ»ΠΈ foreach) Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Ρ ΠΎΡΡ ΠΈ ΡΡΠΎΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π₯ΠΎΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΡΠ±ΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²:
SWITCH: { $t = -36, redo SWITCH unless defined $t; $say = 'Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎ', last SWITCH if $t < 10; $say = 'ΠΏΡΠΎΡ Π»Π°Π΄Π½ΠΎ', last SWITCH if $t < 18; $say = 'ΡΠ΅ΠΏΠ»ΠΎ', last SWITCH if $t < 27; $say = 'ΠΆΠ°ΡΠΊΠΎ'; }
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
++$count, --$sum while (rand < 0.1); $random = rand until $random > 0.7;
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»Π΅Π³ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°ΠΊΡΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΡΠΎΡΡΠ΅Π΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠΎΠΌΡ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊ, Π° ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Perl ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ do Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ do Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠΌΠ° Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, do Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ· Π±Π»ΠΎΠΊΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ:
$result = do { $x=rand; $a=0; } # Π² $result Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ 0
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ "ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ". ΠΠΎΡ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΠ±ΠΎΡΠ°, Π³Π΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ do Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠΌ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°:
SWITCH: { (defined $t) || do { $t = 15; redo SWITCH; }; ($t < 10) && do { $say = 'Ρ ΠΎΠ»ΠΎΠ΄Π½ΠΎ'; last SWITCH; }; ($t < 18) && do { $say = 'ΠΏΡΠΎΡ Π»Π°Π΄Π½ΠΎ'; last SWITCH; }; ($t < 27) && do { $say = 'ΡΠ΅ΠΏΠ»ΠΎ'; last SWITCH; }; $say = 'ΠΆΠ°ΡΠΊΠΎ'; }
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ do, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
do { $sum += rand; } until ($sum > 25);
ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ - Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΡΠΈΠΊΠ», ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΎΠΌ Π² Π½Π΅ΠΉ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π»ΠΎΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ·ΠΎΠ»ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ eval, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΠΌ:
eval Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ # Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π½Π° Perl eval Π±Π»ΠΎΠΊ # Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π»ΠΎΠΊ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
Π Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΌΠ΅ eval Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ eval ΠΊΠ°ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Perl, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, eval Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ, Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ [email protected] ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
$x = 0; $y = 5; # Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0 $expression = "$y/$x"; # ΡΡΡΠΎΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ $result = eval ($expression); # Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ if ( [email protected] eq '') { # ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ print "ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΎ: $result"; } else { print "ΠΡΠΈΠ±ΠΊΠ° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ: [email protected]"; }
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π±Π»ΠΎΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ eval, ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ do, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ [email protected], Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ eval Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ eval: