ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вСтвлСния.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вСтвлСния ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π² зависимости ΠΎΡ‚ вСрности true ΠΈΠ»ΠΈ Π½Π΅ вСрности false условия.

На этом ΡƒΡ€ΠΎΠΊΠ΅ 4 Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² вСтвлСния:

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ true (false). Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π² зависимости ΠΎΡ‚ значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ выполняСтся (Π½Π΅ выполняСтся) ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова if. Π‘Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся (Π½Π΅ выполняСтся) ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ послС условия Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках.

НапишСм скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сообщСниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° пСрСмСнная a содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true.

Но, Ссли Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π±ΡƒΠ΄Π΅Ρ‚ записано Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ρ‚ΠΎ сообщСниС Π½Π΅ вывСдСтся Π½Π° консоль.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния if else

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния if else, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для запуска Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π² зависимости ΠΎΡ‚ значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π΅Ρ€Π½Ρ‘Ρ‚ условиС: true ΠΈΠ»ΠΈ false.

Он отличаСтся ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послС Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся, Ссли условиС Π²Π΅Ρ€Π½ΠΎΠ΅, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово else с Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках послС Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ выполняСтся, Ссли условиС Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова if Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ вСтвлСния if else:

Если ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ numTwo, число большСС Ρ‡Π΅ΠΌ 5, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 7, Ρ‚ΠΎΠ³Π΄Π° условиС Π²Π΅Ρ€Π½Ρ‘Ρ‚ false ΠΈ появится окошко с сообщСниСм УсловиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΎ false.

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if-else, ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Π² зависимости ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Условная тСрнарная опСрация

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния.

Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ booleanValue Ρ€Π°Π²Π½ΠΎ true, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ variable присвоится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value1, ΠΈΠ½Π°Ρ‡Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value2. Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сокращСниС ΠΊΠΎΠ΄Π° Π²ΠΈΠ΄Π°:

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch-case

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π°. Бинтаксис Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠΉ:

Если ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 1, Ρ‚ΠΎ выполнится ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 2, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Если ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², стоящСму послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова case, Ρ‚ΠΎ выполнится Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова default. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch-case часто примСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ if-else.

Π‘Ρ‚ΠΎΠΈΡ‚ Π΅Ρ‰Ρ‘ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ слов ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ break. Если ΠΎΠ½ ΠΎΠΏΡƒΡ‰Π΅Π½ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, послС case, Ρ‚ΠΎ выполнСния ΠΊΠΎΠ΄Π° продолТится ΠΈ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, послС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова case Ρ‚Π°ΠΊ ΠΆΠ΅ выполнится ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ встрСчСно ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово break.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния (условная инструкция, условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€) β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, конструкция языка программирования, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии истинности Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ логичСского выраТСния, Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄) Π² зависимости ΠΎΡ‚ значСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выраТСния.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠ±Ρ‰Π΅Π΅ описаниС

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния примСняСтся Π² случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ выполнСния ΠΈΠ»ΠΈ нСвыполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия. Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… (наряду с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ исполнСниСм ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠΌ) Π±Π°Π·ΠΎΠ²Ρ‹Ρ… конструкций структурного программирования.

Π’ΠΈΠ΄Ρ‹ условных инструкций

БущСствуСт Π΄Π²Π΅ основныС Ρ„ΠΎΡ€ΠΌΡ‹ условной инструкции, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… языках программирования: условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, case, switch).

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Π’ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ

РСализация

Algol, Pascal
Algol-68, Ada, Modula-2

ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² АлголС ΠΈ ПаскалС с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния Π±Ρ‹Π»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ. ΠšΡ€ΠΈΡ‚ΠΈΠΊΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ многочислСнныС составныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ расстановкС отступов ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΡŽΡ‚ ошибки (Ссли Π² послСднСй Π²Π΅Ρ‚Π²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if Π·Π°Π±Ρ‹Ρ‚ΡŒ составной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Ρ‚ΠΎ компилятор Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚, Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² этой Π²Π΅Ρ‚Π²ΠΈ, ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€” всСгда). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поколСния языков β€” ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Алгола ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этого нСдостатка. Π’ ΠΈΡ… числС Ρ‚Ρ€ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстных языка: Алгол-68, ΠœΠΎΠ΄ΡƒΠ»Π°-2 ΠΈ Ада. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if Π² Π½ΠΈΡ… практичСски ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°, с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов:

Π’ΠΎ всСх случаях Β«ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹XΒ» β€” любоС число ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. Π’ΠΎ всСх случаях всС Π²Π΅Ρ‚Π²ΠΈ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ (Π²Π΅Ρ‚Π²ΠΈ Β«thenΒ») Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹. Если Π²Π΅Ρ‚Π²ΡŒ Β«elseΒ» отсутствуСт ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий Π½Π΅ выполняСтся, Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ условной конструкции (END, FI ΠΈΠ»ΠΈ END IF).

C, C++ ΠΈ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ

C ΠΈ C++ (Π° вслСд Π·Π° Π½ΠΈΠΌΠΈ ΠΈ Java, C#, PHP ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… языков) ΠΈΠΌΠ΅ΡŽΡ‚ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, структурно Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Паскалю. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ условиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ записано Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, Π° вмСсто ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов begin ΠΈ end ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки <> :

Nemerle
Forth

Π—Π΄Π΅ΡΡŒ просто ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка, IF Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π»Π°Π³, ΠΈ Ссли:

ΠŸΡ€ΠΈ отсутствии ELSE получаСтся сСлСктор с ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ: выраТСния ΠΌΠ΅ΠΆΠ΄Ρƒ IF ΠΈ THEN Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ„Π»Π°Π³Π°.

Fortran

Fortran ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ арифмСтичСский IF, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² зависимости ΠΎΡ‚ Π·Π½Π°ΠΊΠ° выраТСния производился ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ. НапримСр, Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния:

Π—Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ логичСскиС (булСвскиС) выраТСния ΠΈ логичСский IF с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, вычисляСмый GOTO, ΠΏΠΎΠ·ΠΆΠ΅ β€” структурный IF (с нСсколькими условиями), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Perl ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ структурный if с нСсколькими условиями, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (statement modifiers), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ послС выполняСмой части ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. НапримСр, Π΄Π²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

ВмСсто if ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ unless, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ инвСрсии значСния условного выраТСния ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ. Π’ΠΎ ΠΆΠ΅ самоС дСйствиС Ρ‡Π΅Ρ€Π΅Π· unless:

Для составного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (Π±Π»ΠΎΠΊΠ°) допустима Ρ‚ΠΎΠ»ΡŒΠΊΠΎ структурная Ρ„ΠΎΡ€ΠΌΠ°, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. НапримСр:

Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π·Π° счёт трСбования ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ оформлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ΄ условиями Π² Π±Π»ΠΎΠΊΠΈ <…>.

НС сущСствуСт Π°Π½Π°Π»ΠΎΠ³Π° слова unless для Π²Π΅Ρ‚ΠΎΠΊ elsif.

Erlang

Erlang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° β€” if ΠΈ case. Оба ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ послСднСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано (Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽβ€¦), поэтому Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½ΠΎΠ³ΠΎ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ case выполняСтся БопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий Π½Π° значСния Π² сравниваСмом, Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ if β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условий. Π’ условиях (guard tests) допускаСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° case (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записи ΠΎ событии ΠΈΠ· Π΄Π΅Ρ€Π΅Π²Π° Π²Ρ€Π΅ΠΌΡ‘Π½):

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько (Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) Π²Π΅Ρ‚Π²Π΅ΠΉ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ выполняСт ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π² зависимости ΠΎΡ‚ значСния вычисляСмого ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ выраТСния. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ этой инструкции ΠΎΡ‚ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Π±ΠΎΡ€ исполняСмой Π²Π΅Ρ‚Π²ΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ логичСскоС, Π° Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ выраТСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкстовыС строки).

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ соврСмСнной синтаксичСской конструкции Π±Ρ‹Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² старых языках программирования ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ вычисляСмой ΠΌΠ΅Ρ‚ΠΊΠ΅. Π’ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ»ΠΎΡΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ использовалось ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΊΠΈ (Π² спискС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ производился ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄. Π’Π°ΠΊΠΈΠ΅ конструкции Π±Ρ‹Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² языках программирования Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ («вычисляСмый GOTOΒ») ΠΈ БСйсик. ΠŸΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стороной конструкции являСтся Π΅Ρ‘ достаточно высокая ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: для опрСдСлСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ (ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°) Π½Π΅ трСбуСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния-сСлСктора со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ занчСниями, достаточно Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ массив ΠΊΠΎΠΌΠ°Π½Π΄ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ адрСсами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт нСпосрСдствСнно ΠΈΠ· значСния выраТСния. ΠŸΡ€ΠΈ этом ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ зависит ΠΎΡ‚ количСства ΠΌΠ΅Ρ‚ΠΎΠΊ. Π’ соврСмСнных языках рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ‚Π°ΠΊΠΆΠ΅ часто выполняСтся Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, состоящСй ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°. ВычисляСмоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ прСобразовываСтся Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сдвига ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π’ языках, Π³Π΄Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ конструкции ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда, поэтому Π² Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ исполнСния.

НапримСр, Π² языкС Π‘ΠΈ синтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π‘ΠΈ унаслСдован мноТСством языков, Π½ΠΎ сСмантика Π΅Π³ΠΎ Π½Π΅ всСгда ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π‘ΠΈ. НапримСр, Π² C# допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор строкового Ρ‚ΠΈΠΏΠ° ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ вычислСния логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

На порядок исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с условными ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π²Π»ΠΈΡΡ‚ΡŒ принятая Π² языкС Π»ΠΎΠ³ΠΈΠΊΠ° вычислСния условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Когда условиС прСдставляСт собой слоТноС логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Β«f(x) > 0 И g(y) > 0Β», сущСствуСт Π΄Π²Π΅ стратСгии вычислСния Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённым для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… языков (Π² частности, для Алгола, Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π°, Π‘++, Π‘, Java, JavaScript, ECMAScript, JScript, C#, Python). Π’ этих языках дСйствуСт ТёсткоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: «ЛогичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСгда вычисляСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ Π΅Π³ΠΎ вычислСниС останавливаСтся сразу ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСго выраТСния становится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΒ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… подусловий, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ «И» (AND), Ρ‚ΠΎ вычислСниС выраТСния прСкратится, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· подусловий окаТСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ «лоТь AND любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всСгда Π΄Π°Ρ‘Ρ‚ «лоТь»), ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ссли нСсколько подусловий ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Β«Π˜Π›Π˜Β» (OR), вычислСниС прСкратится послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΆΠ΅ истинного подусловия, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС всё Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ истинно, нСзависимо ΠΎΡ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… вычислСний. А Π²ΠΎΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, содСрТащСС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«Π˜ΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜Β» (XOR) Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ Π½Π΅ поддаётся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Ρ‘ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния всСго выраТСния.

Π―Π·Ρ‹ΠΊΠΈ Ада ΠΈ Erlang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова для этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²: слова and ΠΈ or ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ вычислСниС, Π° and then, or else (Ада), andalso, orelse (Erlang) β€” Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅. Π’ Erlang andalso ΠΈ orelse ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹, Ρ‡Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ скобок Π²ΠΎΠΊΡ€ΡƒΠ³ элСмСнтарных условий.

Ѐиксированный порядок вычислСния подусловий (логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСгда вычисляСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ) вводится для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ порядком вычислСния выраТСния ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ сначала Ρ‚Π΅ условия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π­Ρ‚ΠΈΠΌ, кстати, логичСскиС выраТСния ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ арифмСтичСских, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков, порядок вычислСния ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΈ Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) языком Π½Π΅ задаётся ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ.

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ исполнСния связан с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ логичСскиС выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ зависимыС элСмСнты. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ поиск Π² массивС:

Алгоритм, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° Ρ‚ΠΎΠ½ΠΊΠΎΡΡ‚ΡŒ (см. строку, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΡƒΡŽ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ): условиС Ρ†ΠΈΠΊΠ»Π° состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй, связанных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ AND. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ подусловиС провСряСт, Π½Π΅ Π²Ρ‹ΡˆΠ΅Π» Π»ΠΈ индСкс i Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Π½Π΅ Ρ€Π°Π²Π΅Π½ Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива искомому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Если массив Π½Π΅ содСрТит искомого значСния, Ρ‚ΠΎ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ послСднСго элСмСнта Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i увСличится Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ; Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ подусловиС окаТСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ ΠΈ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ подусловия. Если Π±Ρ‹ логичСскиС выраТСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ»ΠΈΡΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΎ ΠΏΡ€ΠΈ отсутствии искомого элСмСнта Π² массивС послС послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ происходила Π±Ρ‹ ошибка: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ a[i] Π²Ρ‹Π·Ρ‹Π²Π°Π»Π° Π±Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ вычислСния значСния выраТСния, здСсь Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ фиксированный порядок вычислСния подусловий: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ массива записана ΠΏΠ΅Ρ€Π²ΠΎΠΉ, ΠΎΠ½Π° всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° достиТСния искомого значСния. Если Π±Ρ‹ порядок вычислСния ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±Ρ‹Π» Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ вычислСнии логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Как Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ искусствСнно Π·Π°Π΄Π°Ρ‚ΡŒ порядок вычислСния условий Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ ввСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ИмСнно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Ρ€ΡŽΠΊΠΎΠ², ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ вычислСниС логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Код ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅, являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° IF Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для написания Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° языкС Паскаль.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для поиска числа Π² массивС:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

infoegehelp.ru

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вСтвлСния

Π’ΠΈΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² вСтвлСния:

Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² вСтвлСния.

1.ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния «Π΅ΡΠ»ΠΈ-Ρ‚ΠΎ».

НиТС Π½Π° рисунках прСдставлСны Π±Π»ΠΎΠΊ-схСмы, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Бинтакис описания ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования:

ΠŸΠ°ΡΠΊΠ°Π»ΡŒΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠ‘Π΅ΠΉΡΠΈΠΊΠ‘ΠΈ
if условиС then
begin
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹;
end
else
begin
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹;
end
Ссли условиС
Ρ‚ΠΎ
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
ΠΈΠ½Π°Ρ‡Π΅
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
всС
IF условиС THEN
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
ELSE
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
END IF
if(условиС) <
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹;
>
else <
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹;
>

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «Π΅ΡΠ»ΠΈ» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая опрСдСляСт Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ числа ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΠ°ΡΠΊΠ°Π»ΡŒΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉ
var a,b:integer;
begin
read(a,b);
if a=b then
writeln(‘ravni’)
else
writeln(‘ne ravni’)
end.
Π°Π»Π³
Π½Π°Ρ‡
Ρ†Π΅Π» a,b
Π²Π²ΠΎΠ΄ a,b
Ссли a=b
Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ ‘ravni’
ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹Π²ΠΎΠ΄ ‘ne ravni’
всС
ΠΊΠΎΠ½
БСйсикБи
DIM a,b AS INTEGER
INPUT a
INPUT b
IF a=b THEN
PRINT «ravni»
ELSE PRINT «ne ravni»
END IF
END
#include
#include
void main()
<
int a,b;
scanf(«%d%d»,&a,&b);
if (a==b)
printf(«ravni»);
else printf(«ne ravni»);
getch();
>

НиТС Π½Π° рисунках прСдставлСны Π±Π»ΠΎΠΊ-схСмы, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Бинтакис описания ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования:

ΠŸΠ°ΡΠΊΠ°Π»ΡŒΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉΠ‘Π΅ΠΉΡΠΈΠΊΠ‘ΠΈ
case ΠΏΠ΅Ρ€Π΅ΠΌ of
конст : ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;
конст : ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;
else ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;
end;

Π²Ρ‹Π±ΠΎΡ€
ΠΏΡ€ΠΈ условиС: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
ΠΏΡ€ΠΈ условиС: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
всС
SELECT CASE ΠΏΠ΅Ρ€Π΅ΠΌ
CASE ΠΏΠ΅Ρ€_Π²Ρ‹Π±: ΠΎΠΏΠ΅Ρ€Π°Ρ‚
CASE ΠΏΠ΅Ρ€_Π²Ρ‹Π±: ΠΎΠΏΠ΅Ρ€Π°Ρ‚
CASE ELSE ΠΎΠΏΠ΅Ρ€Π°Ρ‚
END SELECT
switch(ΠΏΠ΅Ρ€Π΅ΠΌ) <
case конст:ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;break;
case конст:ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;break;
default : ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;
>

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «Π²Ρ‹Π±ΠΎΡ€» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая ΠΏΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ дня Π½Π΅Π΄Π΅Π»ΠΈ.

ΠŸΠ°ΡΠΊΠ°Π»ΡŒΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉ
var a:integer;
begin
read(a);
case a of
1:writeln(‘ponedelnik’);
2:writeln(‘vtornik’);
3:writeln(‘sreda’);
4:writeln(‘chetverg’);
5:writeln(‘pyatnica’);
6:writeln(‘subbota’);
6:writeln(‘voskresenie’);
else
writeln(‘dnya nedeli s takim nomerom net’);
end;
end.
Π°Π»Π³
Π½Π°Ρ‡
Ρ†Π΅Π» a
Π²Π²ΠΎΠ΄ a
Π²Ρ‹Π±ΠΎΡ€
ΠΏΡ€ΠΈ a=1: Π²Ρ‹Π²ΠΎΠ΄ ‘ponedelnik’
ΠΏΡ€ΠΈ a=2: Π²Ρ‹Π²ΠΎΠ΄ ‘vtornik’
ΠΏΡ€ΠΈ a=3: Π²Ρ‹Π²ΠΎΠ΄ ‘sreda’
ΠΏΡ€ΠΈ a=4: Π²Ρ‹Π²ΠΎΠ΄ ‘chetverg’
ΠΏΡ€ΠΈ a=5: Π²Ρ‹Π²ΠΎΠ΄ ‘pyatnica’
ΠΏΡ€ΠΈ a=6: Π²Ρ‹Π²ΠΎΠ΄ ‘subbota’
ΠΏΡ€ΠΈ a=7: Π²Ρ‹Π²ΠΎΠ΄ ‘voskresenie’
ΠΈΠ½Π°Ρ‡Π΅
Π²Ρ‹Π²ΠΎΠ΄ ‘dnya nedeli s takim nomerom net’
всС
БСйсикБи
DIM a AS INTEGER
INPUT a
SELECT CASE a
CASE 1: PRINT «ponedelnik»
CASE 2: PRINT «vtornik»
CASE 3: PRINT «sreda»
CASE 4: PRINT «chetverg»
CASE 5: PRINT «pyatnica»
CASE 6: PRINT «subbota»
CASE 7: PRINT «voskresenie»
CASE ELSE
PRINT dnya nedeli s takim nomerom net
END SELECT
END
#include
#include
void main()
<
int a;
scanf(«%d»,&a);
switch(a) <
1:printf(«ponedelnik»);break;
2:printf(«vtornik»);break;
3:printf(«sreda»);break;
4:printf(«chetverg»);break;
5:printf(«pyatnica»);break;
6:printf(«subbota»);break;
7:printf(«voskresenie»);break;
default: printf(«dnya nedeli s takim nomerom net»);
>
getch();
>

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ Π·Π°Π΄Π°Ρ‡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² вСтвлСния ΠΈΠ· Π΄Π΅ΠΌΠΎ Π•Π“Π­:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ C++. Π§Π°ΡΡ‚ΡŒ 3. Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ условныС конструкции

РазбираСмся, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° C++ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· сСрии Β«Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² C++Β». Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, константами ΠΈ опСрациями с Π½ΠΈΠΌΠΈ. БСгодня ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТных аспСктах языка.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΌΠ΅ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ инструкции Π² зависимости ΠΎΡ‚ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π². НапримСр, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сайт, Ссли всё ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΎΡΡŒ, ΠΈΠ»ΠΈ сообщаСт ΠΎΠ± ошибкС, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. Π­Ρ‚ΠΎ называСтся Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ:

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

НСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ IT-сфСры, Π³Π΄Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ условия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ дСйствия: ΠΎΡ‚ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π΄ΠΎ ΠΈΠ³Ρ€. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ условныС конструкции, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠŸΠΈΡˆΠ΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π² свободноС врСмя создаСт ΠΈΠ³Ρ€Ρ‹. ΠœΠ΅Ρ‡Ρ‚Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свою ΡΡ‚ΡƒΠ΄ΠΈΡŽ ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»Π°ΠΌΠΏΠΎΠ²Ρ‹Π΅ RPG.

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² C++

Π•ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… bool (Π±ΡƒΠ»Π΅Π² Ρ‚ΠΈΠΏ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ истина, Π»ΠΈΠ±ΠΎ лоТь. Благодаря Π΅ΠΌΡƒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±ΡƒΠ»Π΅Π²Π° Ρ‚ΠΈΠΏΠ° ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ (true ΠΈΠ»ΠΈ false) ΠΈΠ»ΠΈ ввСсти ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ логичСскоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅:

Π”Π°Π»ΡŒΡˆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ провСряСт ΠΏΡ€Π°Π²Π΄ΠΈΠ²ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ утвСрТдСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Для написания Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ вывСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ result ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 1 ΠΈΠ»ΠΈ 0.

Π—Π°Π΄Π°Π½ΠΈΠ΅ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько логичСских ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ if

Условная конструкция if позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ инструкции Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΄Π°Π½Π½ΠΎΠ΅ логичСскоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎ. ЗаписываСтся эта конструкция Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΎΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ (ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚) всё, Ρ‡Ρ‚ΠΎ написано Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ΠΌ:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ слоТно Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° большого количСства условных конструкций. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ запись, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ else (ΠΈΠ½Π°Ρ‡Π΅).

Else ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ инструкции Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ссли провСряСмоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ нСсколько условий, Ρ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ else if.

ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ условиС ΠΈ, Ссли ΠΎΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½ΠΈΠΌ else if. Если Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Π΅Ρ€Π½Ρ‹ΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ инструкции Π²Π½ΡƒΡ‚Ρ€ΠΈ else, поэтому ΠΎΠ½ΠΎ всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ условныС конструкции Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… условных конструкций:

Π•ΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ записи. НапримСр, Ссли Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° инструкция, Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

Π—Π°ΠΏΠΈΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ сильнСС, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ условиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ запись Π²ΠΈΠ΄Π°:

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС условных конструкций, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, β€” эта Ρ‚Π΅ΠΌΠ° ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°.

Π‘ΡƒΠ»Π΅Π²Π° Π°Π»Π³Π΅Π±Ρ€Π°

Иногда Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сразу нСсколько условий. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ Π½Π° ΡƒΠ»ΠΈΡ†Ρƒ, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ доТдя ΠΈΠ»ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ Π·ΠΎΠ½Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ завСсти ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠ»ΡŽΡ‡ ΠΈ Π±Π΅Π½Π·ΠΈΠ½ Π² Π±Π°ΠΊΠ΅.

Π’Π°ΠΊΠΈΠ΅ условия Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ слоТными, Π° для ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ примСняСтся Π±ΡƒΠ»Π΅Π²Π° Π°Π»Π³Π΅Π±Ρ€Π°. Π’ C++ для этого Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹:

Π’ΠΎΡ‚ простая Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΡ… логичСских ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слоТСний:

AB&& (И)|| (Π˜Π›Π˜)
0000
0101
1001
1111

Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ НЕ всё Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅:

A!A (НЕ A)
10
01

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вСтвлСния

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠ±Ρ‰Π΅Π΅ описаниС

Π’ΠΈΠ΄Ρ‹ условных инструкций

БущСствуСт Π΄Π²Π΅ основныС Ρ„ΠΎΡ€ΠΌΡ‹ условной инструкции, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… языках программирования: условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, case, switch).

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Π’ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ

РСализация Π² Pascal

РСализация Π² C++

C ΠΈ C++ (Π° вслСд Π·Π° Π½ΠΈΠΌΠΈ ΠΈ Java, C#, PHP ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… языков) ΠΈΠΌΠ΅ΡŽΡ‚ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, структурно Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Паскалю. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ условиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ записано Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, Π° вмСсто ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов begin ΠΈ end ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки <> :

Nemerle

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько (Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) Π²Π΅Ρ‚Π²Π΅ΠΉ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ выполняСт ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π² зависимости ΠΎΡ‚ значСния вычисляСмого ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ выраТСния. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ этой инструкции ΠΎΡ‚ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Π±ΠΎΡ€ исполняСмой Π²Π΅Ρ‚Π²ΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ логичСскоС, Π° Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ выраТСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСкстовыС строки).

ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ соврСмСнной синтаксичСской конструкции Π±Ρ‹Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² старых языках программирования ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ вычисляСмой ΠΌΠ΅Ρ‚ΠΊΠ΅. Π’ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠΊ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ»ΠΎΡΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ использовалось ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΊΠΈ (Π² спискС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ производился ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄. Π’Π°ΠΊΠΈΠ΅ конструкции Π±Ρ‹Π»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² языках программирования Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΈ БСйсик. ΠŸΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стороной конструкции являСтся Π΅Ρ‘ достаточно высокая ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ: для опрСдСлСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ (ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°) Π½Π΅ трСбуСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния-сСлСктора со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ занчСниями, достаточно Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ массив ΠΊΠΎΠΌΠ°Π½Π΄ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ адрСсами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт нСпосрСдствСнно ΠΈΠ· значСния выраТСния. ΠŸΡ€ΠΈ этом ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ зависит ΠΎΡ‚ количСства ΠΌΠ΅Ρ‚ΠΎΠΊ. Π’ соврСмСнных языках рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ‚Π°ΠΊΠΆΠ΅ часто выполняСтся Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, состоящСй ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°. ВычисляСмоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ прСобразовываСтся Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сдвига ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Π’ языках, Π³Π΄Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ конструкции ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда, поэтому Π² Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ исполнСния.

НапримСр, Π² языкС Π‘ΠΈ синтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π‘ΠΈ унаслСдован мноТСством языков, Π½ΠΎ сСмантика Π΅Π³ΠΎ Π½Π΅ всСгда Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π‘ΠΈ. НапримСр, Π² Java конструкция ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π²ΠΈΠ΄, Π½ΠΎ любая Π²Π΅Ρ‚Π²ΡŒ, ΠΊΡ€ΠΎΠΌΠ΅ default, обязана Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° break β€” отсутствиС этого ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова являСтся синтаксичСской ошибкой. Π’ C# допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-сСлСктор строкового Ρ‚ΠΈΠΏΠ° ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ вычислСния логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

На Π»ΠΎΠ³ΠΈΠΊΡƒ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с условными ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π²Π»ΠΈΡΡ‚ΡŒ принятая Π² языкС Π»ΠΎΠ³ΠΈΠΊΠ° вычислСния условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Если ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ прСдставляСт собой слоТноС логичСскоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Β«f(x) > 0 ΠΈ g(y) > 0Β», сущСствуСт Π΄Π²Π΅ стратСгии

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённым для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… языков (Π² частности, для Алгола, Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π°, Π‘++, Π‘, Java, JavaScript, ECMAScript, JScript, C#). Π’ этих языках дСйствуСт ТёсткоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: «ЛогичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСгда вычисляСтся слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ Π΅Π³ΠΎ вычислСниС останавливаСтся сразу ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСго выраТСния становится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΒ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… подусловий, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ «И» (AND), Ρ‚ΠΎ вычислСниС выраТСния прСкратится, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· подусловий окаТСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ «лоТь AND любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всСгда Π΄Π°Ρ‘Ρ‚ «лоТь»), ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ссли нСсколько подусловий ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Β«Π˜Π›Π˜Β» (OR), вычислСниС прСкратится послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΆΠ΅ истинного подусловия, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС всё Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ истинно, нСзависимо ΠΎΡ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… вычислСний. А Π²ΠΎΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, содСрТащСС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«Π˜ΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜Β» (XOR) Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ Π½Π΅ поддаётся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Ρ‘ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния всСго выраТСния.

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ исполнСния связан с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ логичСскиС выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ зависимыС элСмСнты. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации являСтся поиск Π² массивС:

Алгоритм, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° Ρ‚ΠΎΠ½ΠΊΠΎΡΡ‚ΡŒ (см. строку, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΡƒΡŽ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ): условиС Ρ†ΠΈΠΊΠ»Π° состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй, связанных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ AND. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ подусловиС провСряСт, Π½Π΅ Π²Ρ‹ΡˆΠ΅Π» Π»ΠΈ индСкс i Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Π½Π΅ Ρ€Π°Π²Π΅Π½ Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива искомому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Если массив Π½Π΅ содСрТит искомого значСния, Ρ‚ΠΎ послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ послСднСго элСмСнта Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i увСличится Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Если послС этого Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ ΠžΠ‘Π подусловия, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ошибкС β€” вСдь i ΡƒΠΆΠ΅ Π²Ρ‹ΡˆΠ»ΠΎ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого эффСкта, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ gоиск ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Как Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ искусствСнно Π·Π°Π΄Π°Ρ‚ΡŒ порядок вычислСния условий Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ ввСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ИмСнно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Ρ€ΡŽΠΊΠΎΠ² ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ вычислСниС логичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *