ΠΠΏΠ΅ΡΠ°ΡΠΎΡ goto. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ goto Π½Π°ΡΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ if. Π£ΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈΡΡΠΈΠ½Π½ΠΎ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true), ΡΠ΅Π»ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° if Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ if...else. Π£ΡΠ»ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ if ΠΈΠ»ΠΈ else, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ switch. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π° ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ switch, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ case, ΠΌΠ΅ΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠΊΠΈ Π½Π΅Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ default (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ) ΠΈΠ»ΠΈ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ switch, Π΅ΡΠ»ΠΈ ΡΠ°Π·Π΄Π΅Π»Π° default Π½Π΅Ρ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ throw. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ throw ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» catch, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ while. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅Π»Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true). Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (expression statement). ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΊΠΎΠΉ Ρ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° (raise, throwing). ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ throw ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» catch, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (labeled statement). ΠΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΊΠ°. ΠΠ΅ΡΠΊΠ° (label) β ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΡΠΉ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ. ΠΠ΅ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ².
ΠΠΎΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ else (dangling else). Π Π°Π·Π³ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² else. Π ΡΠ·ΡΠΊΠ΅ Π‘++ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ else Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ if. Π§ΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΌΡ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ else, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ.
ΠΡΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (null statement). ΠΡΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ.
Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (compound statement). Π‘ΠΈΠ½ΠΎΠ½ΠΈΠΌ Π±Π»ΠΎΠΊΠ°.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ (flow of control). Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ (exception safe). Π’Π΅ΡΠΌΠΈΠ½, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ terminate(). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊ ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Π°Π²Π° 6
Π€ΡΠ½ΠΊΡΠΈΠΈ
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π ΡΠ·ΡΠΊΠ΅ Π‘++ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Ρ, Ρ.Π΅. ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΅Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π³Π»Π°Π²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ (function) β ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΡΠΊ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠ°Π·Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ.
6.1. ΠΡΠ½ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (function definition) ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (return type), ΠΈΠΌΠ΅Π½ΠΈ, ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (parameter) ΠΈ ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ΅, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 5.1), Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌ ΡΠ΅Π»ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ (function body).
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π° (call operator), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ°ΡΡ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Π·Π°ΠΏΡΡΡΠΌΠΈ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (argument). ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΈΠΏ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΠ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. Π€Π°ΠΊΡΠΎΡΠΈΠ°Π» ΡΠΈΡΠ»Π° n ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ n. Π€Π°ΠΊΡΠΎΡΠΈΠ°Π» 5, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π²Π΅Π½ 120:
1 * 2 * 3 * 4 * 5 = 120
ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
// ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» val ΡΠ°Π²Π΅Π½
// val * (val - 1) * (val - 2) ... * ((val - (val - 1)) * 1)
int fact(int val) {
int ret = 1; // Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎ
// ΠΌΠ΅ΡΠ΅ Π΅Π³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
while (val > 1)
ret *= val--; // ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ret ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ret * val
// ΠΈ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ val
return ret; // Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
}
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ ΠΈΠΌΡ fact. ΠΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° int ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int. Π ΡΠΈΠΊΠ»Π΅ while Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 4.5), ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ val Π½Π° 1 ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ return Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ fact ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ret.
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈΠ§ΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ fact(), ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int:
int main() {
int j = fact(5); // j ΡΠ°Π²Π½ΠΎ 120, Ρ.Π΅. ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ fact(5)
cout << "5! is " << j << endl;
return 0;
}
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄Π²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: ΠΎΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ (calling) ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ (called) ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ fact(), ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° int ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ val. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ fact(), ΠΊΠΎΡΠΎΡΡΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ 5.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ return. ΠΠ°ΠΊ ΠΈ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ return ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄Π²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ) ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π·Π°Π΄ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΡΡ Π²ΡΠ·ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ fact() ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
int val = 5; // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ val ΠΈΠ· Π»ΠΈΡΠ΅ΡΠ°Π»Π° 5
int ret = 1; // ΠΊΠΎΠ΄ ΠΈΠ· ΡΠ΅Π»Π° ΡΡΠ½ΠΊΡΠΈΠΈ fact
while (val > 1)
ret *= val--;
int j = ret; // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ j ΠΊΠΎΠΏΠΈΠ΅ΠΉ ret
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡΠΡΠ³ΡΠΌΠ΅Π½ΡΡ β ΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈ Ρ.Π΄. Π₯ΠΎΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½, ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 4.1.3). ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠΈΡΠ»ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ.
Π’ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΠΊ ΠΈ ΡΠΈΠΏ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ fact() ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° int, ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΡΠΈΠΏ int (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 4.11):