Π¦ΠΈΠΊΠ» for си: ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° Π² языкС Π‘ΠΈ : for, while, do…while

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

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» For OTUS

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ наличия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π°Π³Π°ΠΆΠ° Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ². Π‘Π΅Π· понимания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² созданиС качСствСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠžΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈ написании софта ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ†ΠΈΠΊΠ»Ρ‹. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Ρ‡ΡŒ Π·Π°ΠΉΠ΄Π΅Ρ‚ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ-схСмС ΠΊΠ°ΠΊ For. Π‘ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, написанныС Π½Π° языках БИ-сСмСйства. ВсС это пригодится Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ познакомились с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ.

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ – Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия

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

Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ стоит Ρ‚Π°ΠΊΠΈΠ΅ понятия:

  1. Алгоритм – ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.
  2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ячСйки.
  3. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ – значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
  4. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹.
  5. ΠžΠΏΠ΅Ρ€Π°Π½Π΄ – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.
  6. Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ – ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… исполняСмого ΠΊΠΎΠ΄Π°.
  7. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово – ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ слово, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ языком программирования. ΠŸΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
  8. ΠŸΠ΅Ρ‚Π»Ρ – инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° остановку ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС.

ПослСдний Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ словом Β«Ρ†ΠΈΠΊΠ»Β». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прСдусматриваСт ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ мноТСство ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²Β». Π‘Π°ΠΌΡ‹ΠΉ распространСнный – это схСма For.

Но сначала стоит Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ бСсконСчный Ρ†ΠΈΠΊΠ». Он прСдставлСн Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° прилоТСния. НС прСкращаСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ процСсс, программисту прСдстоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ остановку.

ОписаниС Ρ†ΠΈΠΊΠ»Π°

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° For – это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π² языкС Π‘ΠΈ. Он позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ выполнСния ΠΏΠ΅Ρ‚Π»ΠΈ нСпосрСдствСнно Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅. ΠŸΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ спросом ΠΊΠ°ΠΊ Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ Ρƒ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π˜ΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ синтаксис:

For (счСтчик; условиС; ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€)

{

// Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°

}

ИмСнно Ρ‚Π°ΠΊΡƒΡŽ схСму Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅. Но Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. А Π΅Ρ‰Π΅ – ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°.

Как Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚

For – это Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распространСн Π² языках программирования. ВстрСчаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² БИ-сСмСйству. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΏΠ΅Ρ‚Π»ΠΈ. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ:

  1. ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² своСм Ρ†ΠΈΠΊΠ»Π΅. А ΠΈΠΌΠ΅Π½Π½ΠΎ – ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, условиС ΠΈ счСтчик.
  2. ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Β«ForΒ».
  3. Π‘Ρ‡Π΅Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ всСго ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. ДСлаСтся это Π² самом Π½Π°Ρ‡Π°Π»Π΅ Π±Π»ΠΎΠΊΠ°. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит нСпосрСдствСнно послС объявлСния.
  4. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Β«Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅Β» β€” это Π±ΡƒΠ»Π΅Π²ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Оно Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True/False.
  5. Если условиС – это Β«Π˜ΡΡ‚ΠΈΠ½Π°Β», Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ инструкции, прописанныС Π²Π½ΡƒΡ‚Ρ€ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π”Π°Π»Π΅Π΅ – инициализируСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ процСсс прСдусматриваСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ повторная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Β«ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉΒ» Π½Π΅ опрСдСлится систСмой ΠΊΠ°ΠΊ Β«Π›ΠΎΠΆΠ½Ρ‹ΠΉΒ».
  6. Когда условиС, прописанноС Π² Ρ‚Π΅Π»Π΅ For, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ «статус» False, происходит Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Β«ΠΏΠ΅Ρ‚Π»ΠΈΒ».

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – сортировка Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива.

Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС

НиТС прСдставлСна схСма Ρ†ΠΈΠΊΠ»Π° For:

Π­Ρ‚Π° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° прСдставлСния Β«ΠΏΠ΅Ρ‚Π»ΠΈΒ» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ заданная схСма.

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

А Π²ΠΎΡ‚ наглядный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способствуСт Π±ΠΎΠ»Π΅Π΅ быстрому пониманию ΠΈ ΡƒΡΠ²ΠΎΠ΅Π½ΠΈΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ For:

Π—Π΄Π΅ΡΡŒ:

  • счСтчик – это int i = 1;
  • условиС – пСрСмСнная < = 5;
  • ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ – i++.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ окаТСтся Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ i. Она ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ условиС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ i мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 5.
  3. Если ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½ΠΎ, обрабатываСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ прСдставлСнной схСмС происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° +1.
  4. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ Π·Π°ΠΌΠ΅Π½Π° i с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ условия.
  5. Когда пСрСмСнная Π² For Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 6, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ†ΠΈΠΊΠ».

А Π²ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Он ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сумму ΠΏΠ΅Ρ€Π²Ρ‹Ρ… n Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ окаТСтся надпись Β«Π‘ΡƒΠΌΠΌΠ° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 5 Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл = 15Β». Π’ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ сразу Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – n ΠΈ sum.

НСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π’Π½ΡƒΡ‚Ρ€ΠΈ For ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ схСма прСдусматриваСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ°Ρ€Ρ‹-Ρ‚Ρ€ΠΎΠΉΠΊΠΈ счСтчиков, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π›ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ процСсс Π½Π° наглядном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Π²ΠΈΠ΄Π΅ счСтчиков – i ΠΈ j. Π£ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° выраТСния. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° j ΠΈ i происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

Π‘Π΅Π· объявлСния

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ситуация, прСдусматриваСмая Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ – это использованиС ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния счСтчиков ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π’ For ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Запуск Β«ΠΏΠ΅Ρ‚Π»ΠΈΒ» Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π±Π΅Π· Π½ΠΈΡ…. Π’ этом случаС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ while:

Π—Π΄Π΅ΡΡŒ:

  1. Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ программистом.
  2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ i объявлСна Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π•Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° For.
  3. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ прСдставлСнному Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ.

УсловиС Ρ†ΠΈΠΊΠ»Π° – это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Если ΠΎΠ½ΠΎ отсутствуСт, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ бСсконСчной Β«ΠΏΠ΅Ρ‚Π»Π΅Β».

Π‘Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ

БСсконСчный Β«ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°Β» выполняСтся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° прописанноС условиС всСгда выступаСт Π² качСствС «истины». Наглядно ситуация выглядит Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ:

  1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ i ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ 1.
  2. УсловиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ провСряСтся Π½Π° ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ – i большС 0.
  3. Π’ΠΎ врСмя ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.
  4. Из Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ слСдуСт, Ρ‡Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π½Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ прописанноС условиС – истина. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ встрСтится.

Описанная ситуация ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ бСсконСчному исполнСнию ΠΊΠΎΠ΄Π°. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» удаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ условия ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Break ΠΈ Continue

Работая с For, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue. ΠŸΠ΅Ρ€Π²Π°Ρ Β«ΠΊΠΎΠΌΠ°Π½Π΄Π°Β» ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°. ИсполнСниС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ продолТаСтся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Continue – это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ пропуск ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части Ρ‚Π΅Π»Π°. Π”Π°Π»Π΅Π΅ – ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ For ΠΈ While continue ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ условиС продолТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠΌ

РассмотрСнный Ρ†ΠΈΠΊΠ» – это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт быстро ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вСсьма слоТныС вычислСния. Π’ΠΎΡ‚ – наглядный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ подсчСта Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π°:

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ IT-ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ? ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ курсов ΠΏΠΎ вострСбованным IT-направлСниям Π΅ΡΡ‚ΡŒ Π²Β Otus!

Π¦ΠΈΠΊΠ» со счСтчиком | это… Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π¦ΠΈΠΊΠ» со счСтчиком?

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

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

  • 1 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ
  • 2 Π’ΠΈΠ΄Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ²
    • 2. 1 БСзусловныС Ρ†ΠΈΠΊΠ»Ρ‹
    • 2.2 Π¦ΠΈΠΊΠ» с прСдусловиСм
    • 2.3 Π¦ΠΈΠΊΠ» с постусловиСм
    • 2.4 Π¦ΠΈΠΊΠ» с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· сСрСдины
    • 2.5 Π¦ΠΈΠΊΠ» cΠΎ счётчиком
    • 2.6 Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹
    • 2.7 БовмСстный Ρ†ΠΈΠΊΠ»
  • 3 Π¦ΠΈΠΊΠ»Ρ‹ с нСсколькими охраняСмыми вСтвями
    • 3.1 Π¦ΠΈΠΊΠ» ДСйкстры
    • 3.2 Π¦ΠΈΠΊΠ»-‘ΠΏΠ°ΡƒΠΊ’
  • 4 Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚Ρ‹
  • 5 Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅
  • 6 ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ²
  • 7 Бсылки

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ

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

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

Π’ΠΈΠ΄Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ²

БСзусловныС Ρ†ΠΈΠΊΠ»Ρ‹

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

Для обСспСчСния бСсконСчного повторСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ Π»ΠΈΠ±ΠΎ отсутствуСт (Ссли позволяСт синтаксис, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ†ΠΈΠΊΠ»Π΅ LOOP…END LOOP языка Ада), Π»ΠΈΠ±ΠΎ замСняСтся константным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ (while true do … Π² ПаскалС).

Π¦ΠΈΠΊΠ» с прСдусловиСм

Π¦ΠΈΠΊΠ» с прСдусловиСм — Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся ΠΏΠΎΠΊΠ° истинно Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ условиС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΠΎΠΌ. Π­Ρ‚ΠΎ условиС провСряСтся Π΄ΠΎ выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, поэтому Ρ‚Π΅Π»ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½ΠΈ Ρ€Π°Π·Ρƒ (Ссли условиС с самого Π½Π°Ρ‡Π°Π»Π° Π»ΠΎΠΆΠ½ΠΎ). Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков программирования рСализуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ while, ΠΎΡ‚ΡΡŽΠ΄Π° Π΅Π³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅Β β€” while-Ρ†ΠΈΠΊΠ».

Π¦ΠΈΠΊΠ» с постусловиСм

Π¦ΠΈΠΊΠ» с постусловиСм — Ρ†ΠΈΠΊΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ условиС провСряСтся послС выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ всСгда выполняСтся хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π’ языкС Паскаль этот Ρ†ΠΈΠΊΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ repeat..until; Π² Π‘ΠΈΒ β€” do…while.

Π’ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠ΅ условия Ρ†ΠΈΠΊΠ»Π° с постусловиСм Π² Ρ€Π°Π·Π½Ρ‹Ρ… языках Π΅ΡΡ‚ΡŒ различия.

Π’ ПаскалС ΠΈ языках, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΎΡ‚ Π½Π΅Π³ΠΎ, условиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° трактуСтся ΠΊΠ°ΠΊ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° (Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° условиС истинно, Π² русской Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Ρ‰Ρ‘ Β«Ρ†ΠΈΠΊΠ» Π΄ΠΎΒ»), Π° Π² Π‘ΠΈ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…Β β€” ΠΊΠ°ΠΊ условиС продолТСния (Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° условиС Π»ΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Ρ†ΠΈΠΊΠ» ΠΏΠΎΠΊΠ°Β»)…..

Π¦ΠΈΠΊΠ» с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· сСрСдины

Π¦ΠΈΠΊΠ» с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· сСрСдины — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ общая Ρ„ΠΎΡ€ΠΌΠ° условного Ρ†ΠΈΠΊΠ»Π°. БинтаксичСски Ρ‚Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ» оформляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Ρ€Ρ‘Ρ… конструкций: Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΠ½Ρ†Π° Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π½Π°Ρ‡Π°Π»Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, конструкция ΠΊΠΎΠ½Ρ†Π°Β β€” Ρ‚ΠΎΡ‡ΠΊΡƒ, Π³Π΄Π΅ Ρ‚Π΅Π»ΠΎ заканчиваСтся. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» заканчиваСтся ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° конструкциСй ΠΊΠΎΠ½Ρ†Π° Ρ†ΠΈΠΊΠ»Π°. ЕстСствСнно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†ΠΈΠΊΠ» выполнился Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ бСзусловно, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ условия Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Ρ†ΠΈΠΊΠ»Π° ΠΎΡ‚ рассмотрСнных Π²Ρ‹ΡˆΠ΅ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, располоТСнная послС Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΈ Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π°, выполняСтся всСгда (Π΄Π°ΠΆΠ΅ Ссли условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° истинно ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ), Π° Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, находящаяся послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½Π΅ выполняСтся ΠΏΡ€ΠΈ послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Π›Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· сСрСдины ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ†ΠΈΠΊΠ» с прСдусловиСм (размСстив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°), ΠΈ Ρ†ΠΈΠΊΠ» с постусловиСм (размСстив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°).

Π§Π°ΡΡ‚ΡŒ языков программирования содСрТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ· сСрСдины. Π’Π°ΠΊ, Π² языкС Ада для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция LOOP…ENDΒ LOOP ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°

EXIT ΠΈΠ»ΠΈ EXITΒ WHEN:

LOOP
  ... Π§Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°
  EXIT WHEN <условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°>;
  ... Π§Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°
  IF <условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°> THEN 
    EXIT; 
  END;
  ... Π§Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°
END LOOP:

Π—Π΄Π΅ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС количСство ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π‘Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ EXITΒ WHEN ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° провСряСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π° просто EXITΒ β€” ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° производится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² слоТного условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

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

Π¦ΠΈΠΊΠ» cΠΎ счётчиком

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

for, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ указываСтся счётчик (Ρ‚Π°ΠΊ называСмая «пСрСмСнная Ρ†ΠΈΠΊΠ»Π°Β»), Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ количСство ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² (ΠΈΠ»ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счётчика) ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, шаг, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ измСняСтся счётчик. НапримСр, Π² языкС ΠžΠ±Π΅Ρ€ΠΎΠ½-2 Ρ‚Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

 FOR v := b TO e BY s DO
   ... Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°
 END

(здСсь vΒ β€” счётчик, bΒ β€” Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счётчика, eΒ β€” Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счётчика, sΒ β€” шаг).

НСоднозначСн вопрос ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта пСрСмСнная использовалась ΠΊΠ°ΠΊ счётчик. НапримСр, Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС Паскаль встрСтится конструкция Π²ΠΈΠ΄Π°:

i := 100;
for i := 0 to 9 do begin
  ... Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°
end;
k := i;

Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΈΡ‚ΠΎΠ³Π΅ присвоСно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ k: 9, 10, 100, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅? А Ссли Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ досрочно? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ зависят ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, увСличиваСтся Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счётчика послС послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ измСняСт Π»ΠΈ транслятор это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ вопрос: Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° счётчику Π±ΡƒΠ΄Π΅Ρ‚ явно присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅? Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ языки программирования Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ вопросы ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ счётчика Ρ‡Ρ‘Ρ‚ΠΊΠΎ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ПаскалС, стандарт языка Π½Π΅ опрСдСляСт Π½ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ значСния счётчика, Π½ΠΈ послСдствий Π΅Π³ΠΎ явного измСнСния Π² Ρ†ΠΈΠΊΠ»Π΅, Π½ΠΎ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ счётчик явно ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ПаскалС, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ эту Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… систСмах ΠΈ использовании Ρ€Π°Π·Π½Ρ‹Ρ… трансляторов.

Радикально Ρ€Π΅ΡˆΡ‘Π½ вопрос Π² языкС Ада: счётчик считаСтся описанным Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π°, ΠΈ Π²Π½Π΅ Π΅Π³ΠΎ просто Π½Π΅ сущСствуСт. Π”Π°ΠΆΠ΅ Ссли имя счётчика Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π² качСствС счётчика ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ пСрСмСнная. Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊΡƒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ явно ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ значСния, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ конструкция

i := 100;
for i in (0..9) loop
  ... Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°
end loop;
k := i;

внСшнС аналогичная Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ Π½Π° ПаскалС, трактуСтся ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ k Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСмСнная i, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π²Π½Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ счётчику i, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаётся ΠΈ измСняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

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

Π¦ΠΈΠΊΠ» со счётчиком всСгда ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ условный Ρ†ΠΈΠΊΠ», ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ счётчику присваиваСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° условиСм Π²Ρ‹Ρ…ΠΎΠ΄Π° являСтся достиТСниС счётчиком ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ значСния; ΠΊ Ρ‚Π΅Π»Ρƒ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈ этом добавляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ измСнСния счётчика Π½Π° Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ шаг. Однако ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° со счётчиком ΠΌΠΎΠ³ΡƒΡ‚ эффСктивнСС Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ процСссорныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΎΡ‚ Π½Π΅Π³ΠΎ, Ρ†ΠΈΠΊΠ» for, нСсмотря Π½Π° ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ†ΠΈΠΊΠ»Π° со счётчиком, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ являСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ с прСдусловиСм. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Π‘ΠΈ конструкция Ρ†ΠΈΠΊΠ»Π°:

for (i = 0; i < 10; ++i)
{
  ... Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° 
}

фактичСски прСдставляСт собой Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ записи конструкции:

i = 0;
while (i < 10)
{
  ... Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° 
  ++i;
}

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² конструкции for сначала ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°, Π·Π°Ρ‚Π΅ΠΌΒ β€” условиС продолТСния ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, выполняСмая послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° нСкоторая опСрация (это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ счётчика; это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠ° указатСля ΠΈΠ»ΠΈ какая-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ посторонняя опСрация). Для языков Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ просто: пСрСмСнная-счётчик Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ прСдсказуСмо ΠΈ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° сохраняСт своё послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ†ΠΈΠΊΠ»Ρƒ Π² Ρ‚Π΅Π»ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Π²Π»ΠΎΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π² Ρ‚Π΅Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сущСствуСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшним ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ», образуя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ ограничиваСтся.

ПолноС число исполнСний Ρ‚Π΅Π»Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ произвСдСния числа ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΈ всСх Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ². НапримСр взяв Ρ‚Ρ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π° Ρ†ΠΈΠΊΠ»Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎ 10 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 10 исполнСний Ρ‚Π΅Π»Π° для внСшнСго Ρ†ΠΈΠΊΠ»Π°, 100 для Ρ†ΠΈΠΊΠ»Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня ΠΈ 1000 Π² самом Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅.

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

РСшСний ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² нСсколько.

  • ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° goto для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, нСпосрСдствСнно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ критикуСтся сторонниками структурного программирования, ΠΊΠ°ΠΊ ΠΈ всС конструкции, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ использования goto. НСкоторыС языки программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Modula-2, просто Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΈ Π² Π½ΠΈΡ… подобная конструкция Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°Β β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ срСдства Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π² случаС нСобходимости устанавливая ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НСдостаток — услоТнСниС ΠΊΠΎΠ΄Π°, сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ прСимущСств, ΠΊΡ€ΠΎΠΌΠ΅ тСорСтичСской Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» ΠΈΠ·-Π·Π° ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ goto.
  • Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅. ИдСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ досрочно, ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΈ для досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (Ссли Ρ‚Π°ΠΊΠΎΠΉ Π΅ΡΡ‚ΡŒ Π² языкС программирования). Π’ Π‘ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π½Π΅Ρ‘ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return. НСдостаток — Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π½Π΅ всСгда логичСски обосновано, ΠΈ Π½Π΅ всС языки ΠΈΠΌΠ΅ΡŽΡ‚ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ срСдства досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.
  • Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ имССтся сСйчас Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π―Π’Π£. Π’ этом случаС Π² Π½Π΅ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ ситуации ΠΊΠΎΠ΄ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π° Π±Π»ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½ вСсь Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ. НСдостаток — рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ. ΠŸΡ€Π°Π²Π΄Π°, Π² соврСмСнных условиях это Π½Π΅ особСнно Π²Π°ΠΆΠ½ΠΎ: практичСски потСря ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΌΠ°Π»Π°, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ лишь для ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • НаконСц, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ языковыС срСдства для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’Π°ΠΊ, Π² языкС Ада программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°) ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ эту ΠΌΠ΅Ρ‚ΠΊΡƒ. Π’Ρ‹Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π° ΠΈΠ· всСх Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Π΄ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

БовмСстный Ρ†ΠΈΠΊΠ»

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

БовмСстныС Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках программирования (C#, JavaScript, Python, LISP, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΈΠ»ΠΈ ссылка Π½Π° Π½Π΅Π³ΠΎ). Бинтаксис Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования синтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½:

C#:

foreach (type item in set) 
{
    //использованиС item
}

foreach (@set) 
{
    #использованиС $_
}

Python for Loop β€” Π£Ρ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for Π² Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования.

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡŽ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Python for ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты любого ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ (список, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, Π½Π°Π±ΠΎΡ€ ΠΈΠ»ΠΈ строка). Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ.

Бинтаксис

Π’ΠΎΡ‚ синтаксис для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° :

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

 # Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ списку
Ρ†Π²Π΅Ρ‚Π° = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ красный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ синий ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ 
 # ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ строки
S = 'ΠΏΠΈΡ‚ΠΎΠ½'
для Ρ… Π² S:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ py th on 

Break in for Loop

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°. Он просто Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²Ρ‹ΠΏΡ€Ρ‹Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° продолТаСтся послС Ρ†ΠΈΠΊΠ»Π°.

 # Π Π°Π·ΠΎΡ€Π²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Π½Π° «синСм»
Ρ†Π²Π΅Ρ‚Π° = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    Ссли x == 'синий':
        ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ красный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» for

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue пропускаСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

 # ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ «синий»
Ρ†Π²Π΅Ρ‚Π° = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    Ссли x == 'синий':
        ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ красный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ 

Else in for Loop

Python допускаСт ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ†ΠΈΠΊΠ»Π° for . ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Ссли Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ СстСствСнно (Ρ‡Π΅Ρ€Π΅Π· истощСниС).

 Ρ†Π²Π΅Ρ‚ΠΎΠ² = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
Π΅Ρ‰Π΅:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('Π“ΠΎΡ‚ΠΎΠ²ΠΎ!')
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ красный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ синий ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ
# ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Π“ΠΎΡ‚ΠΎΠ²ΠΎ! 

Если Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с break , ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

 Ρ†Π²Π΅Ρ‚ΠΎΠ² = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий', 'ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    Ссли x == 'синий':
        ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
Π΅Ρ‰Π΅:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('Π“ΠΎΡ‚ΠΎΠ²ΠΎ!')
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ красный Π·Π΅Π»Π΅Π½Ρ‹ΠΉ 

Ѐункция range() Π² Ρ†ΠΈΠΊΠ»Π΅ for

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ range().

Ѐункция range(start,stop,step) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл ΠΎΡ‚ 0 Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ числа (Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ).

 # Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл ΠΎΡ‚ 0 Π΄ΠΎ 6
для x в диапазонС (7):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 0 1 2 3 4 5 6 

range() обСспСчиваСт простой способ повторСния дСйствия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

 # ΠΠ°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚!Β» Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°
для x в диапазонС (3):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('ΠŸΡ€ΠΈΠ²Π΅Ρ‚!')
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠŸΡ€ΠΈΠ²Π΅Ρ‚! 

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ начинаСтся с 0 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°, ΡƒΠΊΠ°Π·Π°Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

 # Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл ΠΎΡ‚ 2 Π΄ΠΎ 6
для x в диапазонС (2, 7):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 2 3 4 5 6 

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл.

 для x в диапазонС (-5,0):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ -5 -4 -3 -2 -1 

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ увСличиваСтся Π½Π° 1 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ шаг, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ шага.

 # Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π½Π° 2
для x в диапазонС (2, 7, 2):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 2 4 6 

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» for

Π¦ΠΈΠΊΠ» Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° называСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ .

 # БвСдСниС влоТСнного списка
список = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
для подсписка в спискС:
    для Π½ΠΎΠΌΠ΅Ρ€Π° Π² подспискС:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 1 2 3 4 5 6 7 8 9

ИндСкс доступа Π² Ρ†ΠΈΠΊΠ»Π΅ for

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° индСксов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ range() ΠΈ len() ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 colors = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий']
для индСкса Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (len (Ρ†Π²Π΅Ρ‚Π°)):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (индСкс, Ρ†Π²Π΅Ρ‚Π° [индСкс])
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 0 красный
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 1 Π·Π΅Π»Π΅Π½Ρ‹ΠΉ
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 2 blue 

Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ‚Π°ΠΊΠΈΡ… случаСв ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ enumerate().

 Ρ†Π²Π΅Ρ‚ΠΎΠ² = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий']
для индСкса Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² пСрСчислСнии (Ρ†Π²Π΅Ρ‚Π°):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (индСкс, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 0 красный
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 1 Π·Π΅Π»Π΅Π½Ρ‹ΠΉ
# НапСчатаСт 2 синих 

Π¦ΠΈΠΊΠ» Π½ΠΈΠΆΠ΅ for выполняСт мноТСствСнноС присваиваниС (распаковываСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π² Ρ†ΠΈΠΊΠ»Π΅.

 # Распаковка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°
Π’ = [(1, 2), (3, 4), (5, 6)]
для (а, б) в В:
    Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (Π°, Π±)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 1 2
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 3 4
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 5 6 

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚Π°ΠΊ ΠΈ значСния Π² словарС.

 # Распаковка словаря
D = {'имя': 'Π‘ΠΎΠ±', 'возраст': 25}
для x, y в D.items():
Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (Ρ…, Ρƒ)
# ΠžΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ возраста 25 Π»Π΅Ρ‚
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя Bob 

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ список Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

НС ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²ΠΎ врСмя циклирования Π½Π° Π½ΠΈΡ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ бСсконСчный Ρ†ΠΈΠΊΠ».

 # бСсконСчный Ρ†ΠΈΠΊΠ»
Ρ†Π²Π΅Ρ‚Π° = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…:
    Ссли x == 'красный':
        colors.insert(0, 'ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ')
        print(colors) 

РСкомСндуСтся сначала ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ копию. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π°Ρ€Π΅Π·ΠΊΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ это особСнно ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ.

 Ρ†Π²Π΅Ρ‚ΠΎΠ² = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий']
для x Π² Ρ†Π²Π΅Ρ‚Π°Ρ…[:]:
Ссли x == 'красный':
colors.insert(0, 'ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ')
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ†Π²Π΅Ρ‚Π°)
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ['ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ', 'красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий'] 

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… списков

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ zip(), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ нСсколько списков ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

 # ΠŸΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ сразу Π΄Π²Π° списка
имя = ['Π‘ΠΎΠ±', 'Бэм', 'Макс']
возраст = [25, 35, 30]
для x, y Π² zip (имя, возраст):
    Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (Ρ…, Ρƒ)
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π‘ΠΎΠ± 25
# ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Бэм 35
# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ макс. 30 

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» For Π² R (с 18 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°)

13 июня 2022 г.

Π¦ΠΈΠΊΠ» for β€” ΠΎΠ΄Π½Π° ΠΈΠ· основных конструкций ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния Π² языкС программирования R. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ ΠΊΠ°ΠΊ Π²Ρ‹ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅?

Π’ этом руководствС ΠΌΡ‹ обсудим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» for Π² R, ΠΊΠ°ΠΊΠΎΠΉ Ρƒ Π½Π΅Π³ΠΎ синтаксис, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π·Π½Ρ‹Ρ… структурах Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ нСсколько Ρ†ΠΈΠΊΠ»ΠΎΠ² for ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» For Π² R?

Π¦ΠΈΠΊΠ» for β€” ΠΎΠ΄Π½Π° ΠΈΠ· основных конструкций ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния Π² языкС программирования R. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€, список, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈΠ»ΠΈ ΠΊΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ примСнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π·Π°Π΄Π°Π½Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Ρ‹ for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ наш ΠΊΠΎΠ΄ Π² чистотС ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ повторСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис Ρ†ΠΈΠΊΠ»Π° for Π² R ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

 для (пСрСмСнная Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ) {
    Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
} 

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” это Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅ΠΊΡ‚ΠΎΡ€), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ†ΠΈΠΊΠ» for, пСрСмСнная β€” это элСмСнт этого Π½Π°Π±ΠΎΡ€Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° β€” это Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, вычисляСмых для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта.

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

Π¦ΠΈΠΊΠ» for останавливаСтся послС послСднСго элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 9Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 0003 break (ΠΌΡ‹ рассмотрим этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ·ΠΆΠ΅ Π² этом руководствС).

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» For Π² R

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for Π² R для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ частности, рассмотрим Π²Π΅ΠΊΡ‚ΠΎΡ€, список ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ.

ИспользованиС Ρ†ΠΈΠΊΠ»Π° For для Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΎΡ‡Π΅Π½ΡŒ простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ всС числа ΠΎΡ‚ 1 Π΄ΠΎ 5 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Для этой Ρ†Π΅Π»ΠΈ ΠΌΡ‹ возьмСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€, созданный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ : ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ( 1:5 ) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ print() ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

 для (x в 1:5) {
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
} 
 [1] 1
[1] 2
[1] 3
[1] 4
[1] 5 

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ осмыслСнноС имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Π΅ΠΌ x (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π½Π° , мСсяц ΠΈ Ρ‚. Π΄.).

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ символ, Π΄Π°ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ контСкст, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ paste() ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ:

 Π·Π° (мСсяц Π² 1:5) {
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ(Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ('ΠœΠ΅ΡΡΡ†:', мСсяц))
} 
 [1] "ΠœΠ΅ΡΡΡ†: 1"
[1] Β«ΠœΠ΅ΡΡΡ†: 2Β»
[1] Β«ΠœΠ΅ΡΡΡ†: 3Β»
[1] Β«ΠœΠ΅ΡΡΡ†: 4Β»
[1] "ΠœΠ΅ΡΡΡ†: 5" 

Часто Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π½Π° Π΅Π³ΠΎ основС вывСсти ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 Π·Π° (мСсяц Π² 1:5) {
    Ссли (мСсяц < 3) {
        print(paste('Π—ΠΈΠΌΠ°, мСсяц', мСсяц))
    } Π΅Ρ‰Π΅ {
        print(paste('ВСсна, мСсяц', мСсяц))
    }
} 
 [1] Β«Π—ΠΈΠΌΠ°, мСсяц 1Β»
[1] Β«Π—ΠΈΠΌΠ°, мСсяц 2Β»
[1] «ВСсна, мСсяц 3Β»
[1] «ВСсна, мСсяц 4Β»
[1] «ВСсна, мСсяц 5Β» 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ понятный ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ синтаксис, обращая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° отступы ΠΈ помСщая ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, ΠΌΡ‹ ясно Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для мСсяцСв 1 ΠΈ 2 (Ρ‚. Π΅. ΠΌΠ΅Π½Π΅Π΅ 3) Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Β«Π—ΠΈΠΌΠ°Β» ΠΈ Π½ΠΎΠΌΠ΅Ρ€ мСсяца. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… мСсяцСв Ρ†ΠΈΠΊΠ» for Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ «ВСсна» ΠΈ Π½ΠΎΠΌΠ΅Ρ€ мСсяца. Π‘ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅ ΠΌΡ‹ фактичСски ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 for(мСсяц Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ 1:5) if(month < 3)print(paste('Π—ΠΈΠΌΠ°, мСсяц', мСсяц)) else print(paste('ВСсна, мСсяц', мСсяц)) 
 [1] Β«Π—ΠΈΠΌΠ°, мСсяц 1Β»
[1] Β«Π—ΠΈΠΌΠ°, мСсяц 2Β»
[1] «ВСсна, мСсяц 3Β»
[1] «ВСсна, мСсяц 4Β»
[1] "ВСсна, мСсяц 5" 

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ†ΠΈΠΊΠ»Π° for Π² Π½ΠΎΠ²ΠΎΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ пустому Π²Π΅ΠΊΡ‚ΠΎΡ€Ρƒ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅:

 vect_1 <- c(2, 7, 4, 9, 8)
vect_2 <- числовой()
для (число Π² vect_1) {
    vect_2 <- c(vect_2, число * 10)
}
vect_2 
  1. 20
  2. 70
  3. 40
  4. 90
  5. 80

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт числового Π²Π΅ΠΊΡ‚ΠΎΡ€Π° vect_1 Π½Π° 10 ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ vect_2 .

Π¦ΠΈΠΊΠ» for Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ символов:

 ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… <- c('ΠΊΠΎΠ°Π»Π°', 'кошка', 'собака', 'ΠΏΠ°Π½Π΄Π°')
для (ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅ Π² ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ…) {
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅)
} 
 [1] "ΠΊΠΎΠ°Π»Π°"
[1] «кошка»
[1] «собака»
[1] "ΠΏΠ°Π½Π΄Π°" 

ИспользованиС Ρ†ΠΈΠΊΠ»Π° For Π² спискС

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» for ΠΊ спискам.

Π‘Π½Π°Ρ‡Π°Π»Π° создадим список со ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ структурами:

 my_list <- list(c(5, 8, 2, 9), 'кошка', 'собака', c('ΠΊΠΎΠ°Π»Π°', 'ΠΏΠ°Π½Π΄Π°', 'ΠΊΡ€ΠΎΠ»ΠΈΠΊ'), TRUE, 3.14)
мой_список 
    1. 5
    2. 8
    3. 2
    4. 9
  1. «кошка»
  2.  
  3. 'собака'
    1. "ΠΊΠΎΠ°Π»Π°"
    2. 'ΠΏΠ°Π½Π΄Π°'
    3. 'ΠΊΡ€ΠΎΠ»ΠΈΠΊ'
  • ИБВИНА
  •  
  • 3,14
  • ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС:

     для (элСмСнт Π² my_list) {
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (элСмСнт)
    } 
     [1] 5 8 2 9
    [1] «кошка»
    [1] «собака»
    [1] Β«ΠΊΠΎΠ°Π»Π°Β» Β«ΠΏΠ°Π½Π΄Π°Β» Β«ΠΊΡ€ΠΎΠ»ΠΈΠΊΒ»
    [1] ИБВИНА
    [1] 3. 14 

    ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти Π΄Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС:

     для (элСмСнт Π² my_list) {
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄Π»ΠΈΠ½Π° (элСмСнт))
    } 
     [1] 4
    [1] 1
    [1] 1
    [1] 3
    [1] 1
    [1] 1 

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½ΠΎΠ²Ρ‹ΠΉ список Π½Π° основС my_list , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт исходного списка Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ Π΄Π²Π°ΠΆΠ΄Ρ‹:

     мой_список_2 <- список()
    для (я в 1: длина (мой_список)) {
        my_list_2[[i]] <- rep(my_list[[i]], 2)
    }
    мой_список_2 
      1. 5
      2. 8
      3. 2
      4. 9
      5. 5
      6. 8
      7. 2
      8. 9
      1. «кошка»
      2. «кошка»
    1.  
      1. "собака"
      2. 'собака'
    1. Β«ΠΊΠΎΠ°Π»Π°Β»
    2. Β«ΠΏΠ°Π½Π΄Π°Β»
    3. Β«ΠΊΡ€ΠΎΠ»ΠΈΠΊΒ»
    4. 'ΠΊΠΎΠ°Π»Π°'
    5. Β«ΠΏΠ°Π½Π΄Π°Β»
    6. Β«ΠΊΡ€ΠΎΠ»ΠΈΠΊΒ»
  •  
    1. ИБВИНА
    2. ИБВИНА
    1. 3,14
    2. 3,14
  • Как ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°Ρ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒ условия Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for Π²Ρ‹ΡˆΠ΅. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ список my_list_3 , ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π½Π° основС my_list с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом исходного списка, Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹, , Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для элСмСнтов Π΄Π»ΠΈΠ½ΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ 1 . Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ символ 'Блишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт' :

     мой_список_3 <- список()
    для (я в 1: длина (мой_список)) {
        Ссли (длина (мой_список [[i]]) > 1) {
            my_list_3[[i]] <- rep(my_list[[i]], 2)
        } Π΅Ρ‰Π΅ {
            my_list_3[[i]] <- 'Блишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт'
        }
    }
    мой_список_3 
      1. 5
      2. 8
      3. 2
      4. 9
      5. 5
      6. 8
      7. 2
      8. 9
    1. β€˜Π‘Π»ΠΈΡˆΠΊΠΎΠΌ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт’
    2.  
    3. 'Блишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт'
      1. 'ΠΊΠΎΠ°Π»Π°'
      2. 'ΠΏΠ°Π½Π΄Π°'
      3. 'ΠΊΡ€ΠΎΠ»ΠΈΠΊ'
      4. 'ΠΊΠΎΠ°Π»Π°'
      5. 'ΠΏΠ°Π½Π΄Π°'
      6. 'ΠΊΡ€ΠΎΠ»ΠΈΠΊ'
  • «Блишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт»
  •  
  • 'Блишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ элСмСнт'
  • ИспользованиС Ρ†ΠΈΠΊΠ»Π° For Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅

    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π² R прСдставляСт собой Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ… со строками ΠΈ столбцами, для Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for , Ρ‚. Π΅. ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ» for Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for:

     my_matrix <- ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (1:9, nrow=3, ncol=3)
    для (строка Π² 1:nrow(my_matrix)) {
        for (столбСц Π² 1:ncol(my_matrix)) {
            print(paste('Row', row, 'col', col, 'value', my_matrix[row, col]))
        }
    } 
     [1] "Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1 столбСц 1 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1"
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 6Β»
    [1] "Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 9" 

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ создали ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 3Γ—3, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π΅Π΅ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΎΡ‚ 1 Π΄ΠΎ 9 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ использовали 2 Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π° for для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° строк ΠΈ столбцов ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

    Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² for ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. НапримСр, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Π½ΡƒΠ»ΠΈΠΌ всС значСния нашСй ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… стало Ρ€Π°Π²Π½Ρ‹ΠΌ суммС индСксов ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ячСйки. Для этой Ρ†Π΅Π»ΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ R dim() , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

     для (я Π² 1: тусклый (моя_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°) [1]) {
        for(j in 1:dim(my_matrix)[2]) {
            my_matrix[я, j] = я + j
        }
    }
    моя_ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° 
    2 3 4
    3 4 5
    4 5 6

    Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for Π² R ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для манипулирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π²ΡƒΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ этих ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ:

     качСств <- c('смСшной', 'ΠΌΠΈΠ»Ρ‹ΠΉ', 'Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ')
    ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Π΅ <- c('ΠΊΠΎΠ°Π»Π°', 'кошка', 'собака', 'ΠΏΠ°Π½Π΄Π°')
    for (x Π² качСствС) {
        для (y Ρƒ ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ…) {
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ (Ρ…, Ρƒ))
        }
    } 
     [1] "вСсСлая коала"
    [1] Β«Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΡ‚Β»
    [1] «смСшная собака»
    [1] "вСсСлая панда"
    [1] «милая коала»
    [1] Β«ΠΌΠΈΠ»Ρ‹ΠΉ ΠΊΠΎΡ‚Β»
    [1] «милая собачка»
    [1] «милая панда»
    [1] Β«Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Π°Ρ ΠΊΠΎΠ°Π»Π°Β»
    [1] Β«Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ ΠΊΠΎΡ‚Β»
    [1] Β«Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Π°Ρ собака»
    [1] Β«Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Π°Ρ ΠΏΠ°Π½Π΄Π°Β» 

    ИспользованиС Ρ†ΠΈΠΊΠ»Π° For для DataFrame

    Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ сдСлали с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ структурой Π΄Π°Π½Π½Ρ‹Ρ…:

     super_sleepers <- data. frame(Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³=1:4,
                                 ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅=с('ΠΊΠΎΠ°Π»Π°', 'Π΅ΠΆΠΈΠΊ', 'Π»Π΅Π½ΠΈΠ²Π΅Ρ†', 'ΠΏΠ°Π½Π΄Π°'),
                                 country=c('Австралия', 'Π˜Ρ‚Π°Π»ΠΈΡ', 'ΠŸΠ΅Ρ€Ρƒ', 'ΠšΠΈΡ‚Π°ΠΉ'),
                                 avg_sleep_hours=c(21, 18, 17, 10))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (super_sleepers) 
     Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… страны avg_sleep_hours
    1 1 ΠΊΠΎΠ°Π»Π° Австралия 21
    2 2 Ρ‘ΠΆΠΈΠΊ Π˜Ρ‚Π°Π»ΠΈΡ 18
    3 3 Π»Π΅Π½ΠΈΠ²Π΅Ρ† ΠŸΠ΅Ρ€Ρƒ 17
    4 4 ΠΏΠ°Π½Π΄Π° ΠšΠΈΡ‚Π°ΠΉ 10 
     для (строка Π² 1:nrow(super_sleepers)) {
        for (столбСц Π² 1:ncol(super_sleepers)) {
            print(paste('Row', row, 'col', col, 'value', super_sleepers[row, col]))
        }
    } 
     [1] "Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1 столбСц 1 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1"
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ°Π»Π°Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Австралия»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1, столбСц 4, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 21Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅ΠΆΠ°Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π˜Ρ‚Π°Π»ΠΈΡΒ»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2, столбСц 4, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 18Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»Π΅Π½ΠΈΒ»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€ΡƒΒ»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3, столбСц 4, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 17Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, столбСц 1, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4Β»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, столбСц 2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pandaΒ»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, столбСц 3, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠšΠΈΡ‚Π°ΠΉΒ»
    [1] Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4, столбСц 4, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10Β» 

    ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

    Break Π² Ρ†ΠΈΠΊΠ»Π΅ For

    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ логичСского условия Π² Ρ†ΠΈΠΊΠ»Π΅ for для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· всС элСмСнты. Π’ случаС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самого Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

    Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ наш Π²Π΅ΠΊΡ‚ΠΎΡ€ символов ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ остановим Ρ†ΠΈΠΊΠ» for, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ встрСтит элСмСнт с ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ 4 символами:

     ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… <- c('ΠΊΠΎΠ°Π»Π°', 'кошка', 'собака', 'ΠΏΠ°Π½Π΄Π°')
    для (ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅ Π² ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ…) {
        Ссли (nchar(ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅) < 4) {
            ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
        }
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅)
    } 
     [1] "ΠΊΠΎΠ°Π»Π°" 

    ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ послС "koala" Ρƒ нас Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт с Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ 4 символами ("panda") Π² нашСм Π²Π΅ΠΊΡ‚ΠΎΡ€Π΅ animals , Ρ†ΠΈΠΊΠ» for Π½Π΅ достиг этого значСния ΠΈ остановил Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ появлСнии ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚, содСрТащий ΠΌΠ΅Π½Π΅Π΅ 4 символов ("кошка").

    ИспользованиС

    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° For

    Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break , этот ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для пропуска ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условий, Π° Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· всСго Ρ†ΠΈΠΊΠ»Π°.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π΄Π°Π²Π°ΠΉΡ‚Π΅ запустим Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅, Π·Π°ΠΌΠ΅Π½ΠΈΠ² break Π½Π° next :

    .
    ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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