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

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

Π¦ΠΈΠΊΠ» do while Π² C++. Π£Ρ€ΠΎΠΊ 9.

ΠœΡ‹ ΡƒΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ с Π²Π°ΠΌΠΈ Ρ†ΠΈΠΊΠ» while. Но Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ совсСм ΡƒΠ΄ΠΎΠ±Π½ΠΎ. НапримСр, ΠΌΡ‹ ΠΆΠ΅Π»Π°Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹, Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ с прСдусловиСм Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для этого ΠΈ сущСствуСт Ρ†ΠΈΠΊΠ» do while. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» Ρ‚ΠΎΡ‡Π½ΠΎ выполнится хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Как выглядит Ρ†ΠΈΠΊΠ» с прСдусловиСм?

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

Алгоритм дСйствий Ρ†ΠΈΠΊΠ»Π° do while

  1. ВыполняСм дСйствиС;
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ условиС;
  3. Если условиС Π²Π΅Ρ€Π½ΠΎ, повторяСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚.

Бинтаксис Ρ†ΠΈΠΊΠ»Π° do while

Бинтаксис Ρ†ΠΈΠΊΠ»Π° do while ΠΌΠ°Π»ΠΎ отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ языка C++. И ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ:

  1. Если Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° нСсколько дСйствий, ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ ΠΈΡ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки;
  2. Если дСйствиС ΠΎΠ΄Π½ΠΎ, Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†ΠΈΠΊΠ»Π° do while

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ числа ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π²Π²Π΅Π΄Π΅ΠΌ 0.

ΠœΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ число, ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ. А Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого провСряСм условиС. И Π΄Π°ΠΆΠ΅ Ссли ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ 0, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сработаСт хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² условии ΠΌΡ‹ пишСм Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ value ΠΈ большС Π½ΠΈΡ‡Π΅Π³ΠΎ. Она Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½Π° Π²ΠΎΡ‚ этому Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ value != 0.

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ числа Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π²Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ дСнь Π½Π΅Π΄Π΅Π»ΠΈ с понСдСльника ΠΏΠΎ Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ понСдСльник Ρ€Π°Π²Π΅Π½ 1, Π° Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ 7.

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ знакомились с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ switch, ΠΌΡ‹ использовали ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° break. Π’ Ρ†ΠΈΠΊΠ»Π°Ρ… while, do while ΠΈ for, ΠΌΡ‹ Π΅Π³ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Однако, Π΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ рСкомСндуСтся.

Помимо ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break, сущСствуСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue. Он отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ заставляСт ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ break, continue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ рСкомСндуСтся.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΡˆΠ΅. На Π½Π΅ΠΌ прСдставлСны схСмы дСйствия этих Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². И послСдствия ΠΈΡ… использования Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Ρ‹ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ break Π»ΠΈΠ±ΠΎ continue, Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ наши ΠΏΠ»Π°Π½Ρ‹. И ΠΌΡ‹ Π½Π΅ смоТСм ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ дСйствия нашСго Ρ†ΠΈΠΊΠ»Π°.

РСшСниС Π·Π°Π΄Π°Ρ‡

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ чисСл ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π”Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°ΡΡΡ Π½ΡƒΠ»Ρ‘ΠΌ. НСобходимо Π½Π°ΠΉΡ‚ΠΈ количСство чисСл Π² этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Ноль числом ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ считаСтся.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
Вводится Π½Π΅ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ 215 Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ прСвосходит ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ (215βˆ’1). ПослС послСднСго числа вводится 0.
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
ВрСбуСтся вывСсти ΠΎΠ΄Π½ΠΎ число β€” количСство чисСл Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
1 2 3 4 5 0
6 13 42 0
Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
5
3

Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ рост

Π’ классС учится n ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ². Π˜Π·Π²Π΅ΡΡ‚Π΅Π½ рост ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π² сантимСтрах. Рост ΠΌΠ°Π»ΡŒΡ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π·Π°Π΄Π°Π½ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ срСдний рост ΠΌΠ°Π»ΡŒΡ‡ΠΈΠΊΠΎΠ² ΠΈ срСдний рост Π΄Π΅Π²ΠΎΡ‡Π΅ΠΊ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
Вводятся Ρ†Π΅Π»ΠΎΠ΅ число n (2 Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
ВрСбуСтся вывСсти Π΄Π²Π° Ρ†Π΅Π»Ρ‹Ρ… числа Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» β€” срСдний рост ΠΌΠ°Π»ΡŒΡ‡ΠΈΠΊΠΎΠ² ΠΈ срСдний рост Π΄Π΅Π²ΠΎΡ‡Π΅ΠΊ. Оба числа трСбуСтся ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠ· Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа сантимСтров.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
10
156
-172
189
168
-187
162
-190
165
-186
-179
Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
182 168

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ ΡƒΡ€ΠΎΠΊΠ°

2.5.2 VBA. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠ² | ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для повторСния выполнСния дСйствия ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ дСйствий Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π°) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ вычислСно.

VBA ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ цикличСскиС конструкции Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²:

  1. Π¦ΠΈΠΊΠ»Ρ‹ с фиксированным числом ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ (Ρ†ΠΈΠΊΠ»Ρ‹ со счСтчиком).
  2. Π¦ΠΈΠΊΠ»Ρ‹ с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ числом ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ (Ρ†ΠΈΠΊΠ»Ρ‹ с условиСм).

Для всСх Π²ΠΈΠ΄ΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ понятиС Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°. КаТдоС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° называСтся итСрация.

ЀиксированныС Ρ†ΠΈΠΊΠ»Ρ‹

VBA прСдоставляСт Π΄Π²Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ фиксированного Ρ†ΠΈΠΊΠ»Π°: For … Next (Ρ†ΠΈΠΊΠ» со счСтчиком) ΠΈ For Each … Next (Ρ†ΠΈΠΊΠ» с пСрСчислСниСм).

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ For … Next это Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ» со счСтчиком, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° For … Next:

For <счСтчик> = <Π½Π°Ρ‡Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅> Π’ΠΎ <ΠΊΠΎΠ½Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅> [Step <ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅>] <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Next [<счСтчик>] 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° For … Next.

Листинг 9. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ For … Next

' ЗАДАЧА: Π‘ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π²Π° числа ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ' Π‘ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ всС числа Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Π·Π°Π΄Π°Π½Π½ΠΎΠΌ этими двумя числами, Π° Π·Π°Ρ‚Π΅ΠΌ ' ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ сумму. Sub sample7() Dim i As Integer β€˜ΡΡ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Ρ†ΠΈΠΊΠ»Π° Dim sStart β€˜Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Dim sEnd β€˜ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Dim sSum As Long β€˜Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ сумма sStart = InputBox("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:") sEnd = InputBox("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:") sSum = 0 For i = CInt(sStart) To CInt(sEnd) sSum = sSum + i Next i MsgBox "Π‘ΡƒΠΌΠΌΠ° чисСл ΠΎΡ‚ " & sStart & " Π΄ΠΎ " & sEnd & " Ρ€Π°Π²Π½Π°: " & sSum End Sub 

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° For Each … Next относится ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚.Π΅. примСняСтся Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΊ коллСкциям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ массивам. Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСтся фиксированноС число Ρ€Π°Π·, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ числу элСмСнтов массива ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° For Each … Next:

For Each <элСмСнт> In <Π³Ρ€ΡƒΠΏΠΏΠ°> <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Next [<элСмСнт>] 

Π¦ΠΈΠΊΠ»Ρ‹ с условиСм (Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹)

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

  • Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Π²ΠΈΠ΄Π° Ρ†ΠΈΠΊΠ»ΠΎΠ² Do..Loop, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΎΠΌ провСряСмого условия ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния этой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.
  • НСпрСрываСмый Ρ†ΠΈΠΊΠ» While … Wend.

Π¦ΠΈΠΊΠ» Do While … Loop — Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» с прСдусловиСм. УсловиС провСряСтся Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΠΊΠ° это <условиС> выполняСтся (Ρ‚.Π΅. ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполняСтся Π² Π½Π°Ρ‡Π°Π»Π΅, Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ†ΠΈΠΊΠ»Π° Do While … Loop:

Do While <условиС> <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Loop 

Листинг 10. Π¦ΠΈΠΊΠ» Do While … Loop

' ЗАДАЧА: Π‘ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая прСдусматриваСт Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ' ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл. Π’Π²ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ ' Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сумма Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл прСвысит 100. Sub sample8() Dim OddSum As Integer β€˜ΡΡƒΠΌΠΌΠ° Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл Dim OddStr As String β€˜ΡΡ‚Ρ€ΠΎΠΊΠ° с Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами Dim Num β€˜Π΄Π»Ρ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… чисСл OddStr = "" β€˜ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки OddSum = 0 β€˜ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ суммы OddSum Do While OddSum < 100 β€˜Π½Π°Ρ‡Π°Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Num = InputBox("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: ") If (Num Mod 2) <> 0 Then β€˜ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ OddSum = OddSum + Num β€˜Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ суммы Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл OddStr = OddStr & Num & " " End If Loop 'Π²Ρ‹Π²ΠΎΠ΄ строки с Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами MsgBox prompt:="НСчСтныС числа: " & OddStr End Sub 

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Do … Loop While ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° с постусловиСм. УсловиС провСряСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΏΠΎΠΊΠ° <условиС> остаСтся истинным. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ†ΠΈΠΊΠ»Π° Do … Loop While:

Do <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Loop While<условиС> 

Листинг 11. Π¦ΠΈΠΊΠ» с постусловиСм

' ЗАДАЧА: Π‘ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ³Ρ€Ρ‹ "Π£Π³Π°Π΄Π°ΠΉ число". ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° случайным ' ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 1000, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ' ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ это число. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ число Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ подсказку ' "большС" ΠΈΠ»ΠΈ "мСньшС". Sub sample8() Randomize Timer ' инициализация Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл Dim msg As String ' строка сообщСния Dim SecretNumber As Long, UserNumber As Variant Begin:	SecretNumber = Round(Rnd * 1000) ' число, сгСнСрированноС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ UserNumber = Empty ' число, Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Do ' ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ процСсс Select Case True Case IsEmpty(UserNumber): msg = "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число" Case UserNumber > SecretNumber: msg = "Блишком ΠΌΠ½ΠΎΠ³ΠΎ!" Case UserNumber < SecretNumber: msg = "Блишком ΠΌΠ°Π»ΠΎ!" End Select UserNumber = InputBox(prompt:=msg, Title:="Π£Π³Π°Π΄Π°ΠΉ число") Loop While UserNumber <> SecretNumber ' ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° If MsgBox("Π˜Π³Ρ€Π°Ρ‚ΡŒ Π΅Ρ‰Π΅? ", vbYesNo + vbQuestion, "Π’Ρ‹ ΡƒΠ³Π°Π΄Π°Π»ΠΈ!") = vbYes Then GoTo Begin End If End Sub 

Π¦ΠΈΠΊΠ»Ρ‹ Do Until … Loop ΠΈ Do … Loop Until ΡΠ²Π»ΡΡŽΡ‚ΡΡ инвСрсиями Ρ€Π°Π½Π΅Π΅ рассмотрСнных Ρ†ΠΈΠΊΠ»ΠΎΠ² с условиСм. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСтся ΠΏΡ€ΠΈ Π»ΠΎΠΆΠ½ΠΎΠΌ условии (Ρ‚.Π΅. <условиС>=False). Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ†ΠΈΠΊΠ»Π° Do Until … Loop:

Do Until <условиС> <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Loop 

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ†ΠΈΠΊΠ»Π° Do … Loop Until:

Do <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Loop Until<условиС> 

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· листингов 10 ΠΈ 11 с использованиСм ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°.

Π¦ΠΈΠΊΠ» While … Wend Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ Ρ†ΠΈΠΊΠ»Π°ΠΌ с условиСм. Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ соотвСтствуСт структурС Do While … Loop. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ†ΠΈΠΊΠ»Π° While … Wend:

While <условиС> <Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²> Wend 

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° являСтся Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ (прСрывания) Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Exit Do Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ While … Wend).

ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°

Для досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° примСняСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Exit. Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π² любой цикличСской структурС, ΠΊΡ€ΠΎΠΌΠ΅ While … Wend. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис использования Exit для прСрывания Ρ†ΠΈΠΊΠ»Π° Ρ‚Π°ΠΊΠΎΠ²:

<Π½Π°Ρ‡Π°Π»ΠΎ_Ρ†ΠΈΠΊΠ»Π°> [<Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²1>] Exit (For | Do) [<Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²2>] [Exit (For | Do)] ... <ΠΊΠΎΠ½Π΅Ρ†_Ρ†ΠΈΠΊΠ»Π°> 

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Exit Ρ†ΠΈΠΊΠ» прСрываСтся, ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ <ΠΊΠΎΠ½Π΅Ρ†_Ρ†ΠΈΠΊΠ»Π°>. Π’ Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Exit.

Листинг 12. ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°

Sub sample9() For i = 1 To 10000000 If i = 10 Then Exit For ' Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΠ³Π΄Π° счСтчик достигнСт 10 Next End Sub 

CC-BY-CA ΠΠ½Π°Ρ‚ΠΎΠ»ΡŒΠ΅Π² А.Π“., 31.01.2012

Visual Basic.Net, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Do While . . . Loop

Автор admin ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 623 ОбновлСно

Π£Ρ€ΠΎΠΊ ΠΈΠ· сСрии: Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Visual Basi.Net для школьников»

На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ занятии Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° For…Next для повторСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число Ρ€Π°Π·. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π° зависит ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условий?

На этом ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ занятии Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Do…While ΠΈ Do…Until, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия Ρ€Π°Π²Π½ΠΎ True, ΠΈΠ»ΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия Π½Π΅ станСт Ρ€Π°Π²Π½ΠΎ True.

БущСствуСт Π΄Π²Π΅ разновидности Ρ†ΠΈΠΊΠ»ΠΎΠ² с условиСм: Ρ†ΠΈΠΊΠ»Ρ‹ с прСдусловиСм ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ с постусловиСм.

На этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим Ρ†ΠΈΠΊΠ» с прСдусловиСм Do While. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с использованиСм этого Ρ†ΠΈΠΊΠ»Π°.

Π¦ΠΈΠΊΠ» называСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ с прСдусловиСм, Ссли условиС выполнСния Ρ†ΠΈΠΊΠ»Π° стоит Π² Π½Π°Ρ‡Π°Π»Π΅, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°.

На языкС Visual Basic.Net Ρ†ΠΈΠΊΠ» с прСдусловиСм рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции Do While . . . Loop

ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

Do While УсловиС
   Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°
Loop

Алгоритм выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

1. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова While (ΠΏΠΎΠΊΠ°) провСряСтся условиС продолТСния Ρ†ΠΈΠΊΠ»Π°.

2. Если условиС истинно (True), Ρ‚ΠΎ выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ повторяСтся с ΠΏΡƒΠ½ΠΊΡ‚Π° 1.

3. Если условиС Π»ΠΎΠΆΠ½ΠΎ(False) β€” Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ этого Ρ†ΠΈΠΊΠ»Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условиС Π»ΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ выполнится Π½ΠΈ Ρ€Π°Π·Ρƒ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ конструкции Exit Do.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Β«Π”Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ чисСл»

Π’ срСдС программирования Visual Basic.NET создайтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β  с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Π”Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ чисСл».

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Π”Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ чисСл».
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ
  3. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‰Π΅Π»Ρ‡ΠΊΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…
    Private Sub Button1_Click( . . .
       ' Π”Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° 3 опрСдСляСтся ΠΏΠΎ суммС Ρ†ΠΈΡ„Ρ€Dim n, n1, sum As Integer
       Dim cifra As Byte
       n = Val(TextBox1.Text) 'Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ число
       n1 = n 'создаСм Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ числа, сохраняСм исходноС число для Π²Ρ‹Π²ΠΎΠ΄Π°
       sum = 0
       Do While n1 <> 0
          cifra = n1 Mod 10 'отдСляСм послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ числа
          sum = sum + cifra
          n1 = n1 \ 10 'отбрасываСм послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ
      Loop
      If n <> 0 Then
         If sum Mod 3 = 0 Then
            Label2.Text = "Число " & n & " дСлится Π½Π° 3"
         Else
            Label2.Text = "Число " & n & " Π½Π΅ дСлится Π½Π° 3"
        End If
     Else
        Label2.Text = "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ 0"
    End If
    End Sub
    Private Sub Button2_Click( . . .
       ' Π΄Π΅Π»ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° 4 опрСдСляСтся ΠΏΠΎ Π΄Π²ΡƒΠΌ послСдним Ρ†ΠΈΡ„Ρ€Π°ΠΌ
       Dim n, ost As Integer
       n = Val(TextBox1.Text) 'исходноС число
       If n <> 0 Then 'отдСляСм послСдниС Π΄Π²Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ числа
          ost = n Mod 100
          If ost Mod 4 = 0 Then
             Label2.Text = "Число " & n & " дСлится Π½Π° 4"
          Else
             Label2.Text = "Число " & n & " Π½Π΅ дСлится Π½Π° 4"
         End If
      Else
         Label2.Text = "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ 0"
     End If
    End Sub
    Private Sub Button3_Click(. . .
       Dim n, ost As Integer
       n = Val(TextBox1.Text) 'исходноС число
       If n <> 0 Then
          ost = n Mod 10 'отдСляСм послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ числа
          If ost = 0 Or ost = 5 Then
             Label2.Text = "Число " & n & " дСлится Π½Π° 5"
          Else
             Label2.Text = "Число " & n & " Π½Π΅ дСлится Π½Π° 5"
         End If
       Else
          Label2.Text = "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ 0"
    
       End If
    End Sub
  4. ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСсколько Ρ€Π°Π·, вводя Ρ€Π°Π·Π½Ρ‹Π΅ числа.
  5. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° с прСдусловиСм Do…While для условного
повторСния ΠΊΠΎΠ΄Π°.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Ρ†ΠΈΠΊΠ» с постусловиСм Do…Until.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ: Π¦ΠΈΠΊΠ» с постусловиСм Do … Loop Until

VBA Excel. Π¦ΠΈΠΊΠ» Do While… Loop

Π¦ΠΈΠΊΠ» Do While… Loop Π² VBA Excel, Π΅Π³ΠΎ синтаксис ΠΈ описаниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ†ΠΈΠΊΠ»Π° Do While… Loop.

Π¦ΠΈΠΊΠ» Do While… Loop Π² VBA Excel ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для повторСния Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠΊΠ° выполняСтся Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС (возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True). Бинтаксис этого Ρ†ΠΈΠΊΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ синтаксису Ρ†ΠΈΠΊΠ»Π° Do Until… Loop, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° условиС Π½Π΅ выполняСтся (возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False).

Бинтаксис Ρ†ΠΈΠΊΠ»Π° Do While… Loop

Бинтаксис Ρ†ΠΈΠΊΠ»Π° Do While… Loop сущСствуСт Π² Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ…, ΠΊΠΎΠ³Π΄Π° провСряСтся условиС.


УсловиС провСряСтся Π΄ΠΎ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Do While condition

Β Β Β Β [ statements ]

Β Β Β Β [ Exit Do ]

Β Β Β Β [ statements ]

Loop


УсловиС провСряСтся послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Do

Β Β Β Β [ statements ]

Β Β Β Β [ Exit Do ]

Β Β Β Β [ statements ]

Loop While condition


Π’ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° Do While… Loop.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° Do While… Loop

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
conditionΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. УсловиС выполнСния Ρ†ΠΈΠΊΠ»Π°. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Boolean.
statementsΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ* Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вашСго ΠΊΠΎΠ΄Π°.
Exit DoΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Ρ…ΠΎΠ΄Π°** ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎ Π΅Π³ΠΎ окончания.

*Если Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ свой ΠΊΠΎΠ΄, смысл примСнСния Ρ†ΠΈΠΊΠ»Π° тСряСтся.

**ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Ρ†ΠΈΠΊΠ»Π° Do While… Loop, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ бСсконСчным. Если Ρ‚Π°ΠΊΠΎΠΉ риск сущСствуСт, слСдуСт ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· бСсконСчного Ρ†ΠΈΠΊΠ»Π° VBA с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Β Exit Do.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ² Do While… Loop

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹

Π¦ΠΈΠΊΠ» Do While… Loop с условиСм Π΄ΠΎ исполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Sub test1()

Dim a As Byte

Β Β Do While a < 10

Β Β Β Β a = a + 1

Β Β Loop

MsgBox a

End Sub

Π¦ΠΈΠΊΠ» Do While… Loop с условиСм послС исполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

Sub test2()

Dim a As Byte

Β Β Do

Β Β Β Β a = a + 1

Β Β Loop While a < 10

MsgBox a

End Sub

Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΎΠΊΠ½ΠΎ MsgBox Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ число 10. Когда Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ 10, провСряСмоС условиС выдаст Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False, ΠΈ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ остановлСн.

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ строкам листа

Π£ Π΄Π²ΡƒΡ… Π±Π΅Π»ΠΎΠΊ Π΄ΡƒΠΏΠ»Π° располоТСны Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΡƒΠΏΠ»Π΅ ΠΏΠΎ 100 шишСк. Π’ свободноС врСмя ΠΎΠ½ΠΈ Π±Ρ€ΠΎΡΠ°ΡŽΡ‚ шишки Π² Π΄ΡƒΠΏΠ»ΠΎ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π½Π΅ всСгда. НиТС, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΡƒΠΊΠ°Π·Π°Π½ΠΎ количСство шишСк, Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π΅Π»ΠΊΠΎΠΉ, ΠΈ сколько ΠΈΡ… ΠΏΠΎΠΏΠ°Π»ΠΎ Π² Ρ†Π΅Π»ΡŒ.

Π”Π½ΠΈΠ˜Π³Ρ€ΠΎΠΊΠ‘Ρ€ΠΎΡˆΠ΅Π½ΠΎΠŸΠΎΠΏΠ°Π»ΠΎ Π² Ρ†Π΅Π»ΡŒ
1 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 1156
1 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 2127
2 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 1148
2 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 2167
3 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 1209
3 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 2146
4 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 12610
4 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 2135
5 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 1174
5 Π΄Π΅Π½ΡŒΠ‘Π΅Π»ΠΊΠ° 2217

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этих Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, сколько шишСк ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρƒ Π‘Π΅Π»ΠΊΠΈ 1 Π² Π΄ΡƒΠΏΠ»Π΅. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· 100 шишСк количСство Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… Π‘Π΅Π»ΠΊΠΎΠΉ 1 ΠΈ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ шишки, Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ Π² Π΅Π΅ Π΄ΡƒΠΏΠ»ΠΎ Π‘Π΅Π»ΠΊΠΎΠΉ 2. ВычислСния Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ со Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки (Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ) ΠΈ Π² условии для Ρ†ΠΈΠΊΠ»Π° Do While… Loop ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ «пСрвая ячСйка Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Π½Π΅ являСтся пустой». Π’Π°Π±Π»ΠΈΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ячСйки Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Β«A1Β», ΠΈ ΠΏΠΎΠ΄ Π½Π΅ΠΉ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΎΠ΄Π½Π° строка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ пустой, Ρ‚ΠΎΡ‡Π½Π΅Π΅, пСрвая ячСйка этой строки.

Sub test3()

Dim i As Long, n As Long

i = 2

n = 100

Β Β Do While Cells(i, 1) <> «»

Β Β Β Β If Cells(i, 2) = «Π‘Π΅Π»ΠΊΠ° 1» Then

Β Β Β Β Β Β n = n — Cells(i, 3)

Β Β Β Β Else

Β Β Β Β Β Β n = n + Cells(i, 4)

Β Β Β Β End If

Β Β Β Β i = i + 1

Β Β Loop

MsgBox n

End Sub

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ сообщСнии MsgBox, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 40. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΊΠ½ΠΈΠ³ΠΈ Excel ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ VBA.

БСсконСчный Ρ†ΠΈΠΊΠ» ΠΈ Exit Do

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ бСсконСчного Ρ†ΠΈΠΊΠ»Π°:

Sub test4()

Dim a As Byte

Β Β Do While a < 10

Β Β a = a + 1

Β Β Β Β If a = 9 Then

Β Β Β Β Β Β a = 0

Β Β Β Β End If

Β Β Loop

End Sub

ΠŸΡ€ΠΈ запускС этой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ†ΠΈΠΊΠ» Do While… Loop Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно. МнС ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ бСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹ VBA Π² Excel 2000 ΠΈ Excel 2016. Π’ Excel 2000 ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ сочСтаниС клавиш Ctrl+Break, Π° Π² Excel 2016 ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA крСстиком появляСтся ΠΎΠΊΠ½ΠΎ:

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«Microsoft Excel Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚Β»

ΠžΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅Ρ‚ смысла, поэтому Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Β«ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒΒ» ΠΈΠ»ΠΈ Β«Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒΒ».

Π‘ΠΎΠ²Π΅Ρ‚: ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с Ρ†ΠΈΠΊΠ»ΠΎΠΌ Do While… Loop, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ бСсконСчным, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сохранитС ΠΊΠ½ΠΈΠ³Ρƒ, ΠΈΠ½Π°Ρ‡Π΅, ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA ваши измСнСния Π±ΡƒΠ΄ΡƒΡ‚ утСряны. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° VBA, Excel ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ макросы. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΡ… Π² ΠΎΠΊΠ½Π΅ Β«Π¦Π΅Π½Ρ‚Ρ€ управлСния Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽΒ», ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ссылкС Β«Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ макросов» Π½Π° Π»Π΅Π½Ρ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ». ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ макросов Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях Excel Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅: Как Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макросов Π² Excel?.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Exit Do:

Sub test5()

Dim a As Byte, n As Long

Β Β Do While a < 10

Β Β a = a + 1

Β Β n = n + 1

Β Β Β Β If a = 9 Then

Β Β Β Β Β Β a = 0

Β Β Β Β End If

Β Β Β Β If n = 1000 Then

Β Β Β Β Β Β Exit Do

Β Β Β Β End If

Β Β Loop

MsgBox n

End Sub

Когда число ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π° Π΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ 1000, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ сообщСниС MsgBox Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран число ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π° Do While… Loop ΠΈΠ· этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Ρ‚ΠΈΠΏΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C ΠΈ C ++?

Π¦ΠΈΠΊΠ»Ρ‹ Π² языкС программирования — это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, ΠΏΠΎΠΊΠ° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ условиС Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Π¦ΠΈΠΊΠ» состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ условия, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.

Π¦ΠΈΠΊΠ»Ρ‹ Π² основном состояли ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² — условиС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, условиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, условиС обновлСния.

НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Β« Hello Codies Β» 5 Ρ€Π°Π·, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это двумя способами. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ 5 Ρ€Π°Π· (β„–1) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ экономят врСмя ΠΈ силы (β„–2).

Π’Ρ‹Ρ…ΠΎΠ΄:

Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

  1. Π’ΠΈΠΏΡ‹ ΠΏΠ΅Ρ‚Π΅Π»ΡŒ
  2. Π¦ΠΈΠΊΠ» Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ
  3. Π¦ΠΈΠΊΠ» Do-While
  4. Для ΠΏΠ΅Ρ‚Π»ΠΈ
  5. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»
  6. ЗаявлСниС ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π΅
  7. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ЗаявлСниС

Π’ΠΈΠΏΡ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C / C ++

ΠŸΠ΅Ρ‚Π»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π² зависимости ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² управлСния ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

  • ΠšΠΎΠ½Ρ‚ΡƒΡ€ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠΌ
  • Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· управляСмого ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°

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

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

Условия управлСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчноС количСство Ρ€Π°Π· ( бСсконСчный Ρ†ΠΈΠΊΠ» ). БСсконСчный Ρ†ΠΈΠΊΠ» Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ условиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ условия Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.

Π―Π·Ρ‹ΠΊ программирования C прСдоставляСт Π½Π°ΠΌ 3 Ρ‚ΠΈΠΏΠ° Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ C ++ ΠΈΠΌΠ΅Π΅Ρ‚ 4-ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»:

  • Ρ†ΠΈΠΊΠ» Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ
  • Ρ†ΠΈΠΊΠ» do-while
  • для ΠΏΠ΅Ρ‚Π»ΠΈ
  • Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² C ++)

Бинтаксис этих Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² основном отличаСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ этих Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²: условиС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, условиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, условиС обновлСния.

Π¦ΠΈΠΊΠ» while Π² C / C ++

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

Бинтаксис Ρ†ΠΈΠΊΠ»Π° WHILE:

Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π° while.

Π’ Ρ†ΠΈΠΊΠ»Π΅ While сначала оцСниваСтся условиС, Ссли условиС TRUE, Π·Π°Ρ‚Π΅ΠΌ выполняСтся Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ обновляСтся условиС, Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ снова возвращаСтся Π² Π½Π°Ρ‡Π°Π»ΠΎ, ΠΈ условиС снова провСряСтся, Ссли ΠΎΠ½ΠΎ истинно, Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс выполняСтся Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ условия становится Π»ΠΎΠΆΠ½Ρ‹ΠΌ.ПослС выполнСния условия ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ FALSE ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ возвращаСтся Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Пока Ρ†ΠΈΠΊΠ» — это Ρ†ΠΈΠΊΠ» с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если Ρ†ΠΈΠΊΠ» содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹. Π₯отя Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки — это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ†ΠΈΠΊΠ» while:

Π’Ρ‹Ρ…ΠΎΠ΄:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΡΠ΅Ρ€ΠΈΡŽ чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» while .

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ происходит Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, шаг Π·Π° шагом.

Π¨Π°Π³ 1: ΠœΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Β«num = 1Β».

Π¨Π°Π³ 2 : Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌ, — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«numΒ» мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 5, Ссли Β«numΒ» становится большС 5, это условиС становится Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

Π¨Π°Π³ 3 : БСйчас β€˜num = 1’, ΠΌΡ‹ Π²Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ†ΠΈΠΊΠ», сравнивая 1 <= 5, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, поэтому Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€˜num’ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

Π¨Π°Π³ 4 : На этом шагС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«numΒ» ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π° 1, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Β«num = 2Β».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ шаг 3 ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ снова с Β«num = 2Β» ΠΈ вывСсти Β«numΒ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ 3,4,5. Когда Β«numΒ» увСличиваСтся Π΄ΠΎ 6 (num = 6) , Π° условиС становится FALSE ΠΈ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ возвращаСтся ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main (), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° do ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ 0, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π¦ΠΈΠΊΠ» Do-While Π² C / C ++

Π¦ΠΈΠΊΠ» Do-while ΠΏΠΎΡ‡Ρ‚ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ†ΠΈΠΊΠ»Ρƒ while, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ условия ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.Π­Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ с управляСмым Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ .

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

Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π° Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ — ΠΏΠΎΠΊΠ°Β».

Π¦ΠΈΠΊΠ» Do – while ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² случаях, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, нСзависимо ΠΎΡ‚ условия. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° while, Ρ†ΠΈΠΊΠ» , Π² Ρ†ΠΈΠΊΠ»Π΅ do-while Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° всСгда выполняСтся хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ провСряСт условиС. Если условиС истинно , Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ снова Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ½Π°Ρ‡Π΅, Ссли условиС станСт Π›ΠžΠ–Π¬ , ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ†ΠΈΠΊΠ» do-while :

Π’Ρ‹Ρ…ΠΎΠ΄:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ‘num = 6’ ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈ ‘num = 6’ Π±Π΅Π· Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ условия while, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ FALSE ΠΊΠ°ΠΊ 6> 5. ПослС ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ 6 ΠΌΡ‹ сравнили, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ оказалось FALSE, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ² пСтля.

Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ Ρ†ΠΈΠΊΠ»Π°Ρ… while ΠΈ Do-while:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько тСстовых условий ΠΊΠ°ΠΊ Π² Ρ†ΠΈΠΊΠ»Π΅ While, Ρ‚Π°ΠΊ ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ Do-while с использованиСм Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², слСдуйтС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

НСсколько условий тСстирования с использованиСм Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π΅ while.

Π’Ρ‹Ρ…ΠΎΠ΄:

Π—Π΄Π΅ΡΡŒ while Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли число мСньшС 5 ΠΈ мСньшС 3. Для компиляции Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ истинности.

Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€Π°Π²Π΄Ρ‹

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

НСсколько тСстовых условий Π² Ρ†ΠΈΠΊΠ»Π΅ Do-While.

Π’Ρ‹Ρ…ΠΎΠ΄:

Π—Π΄Π΅ΡΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, нСзависимо ΠΎΡ‚ условия, Ρ‡Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«numΒ» ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎΡΡŒ ΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с условиСм while.Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли выполняСтся ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π° условия. Для компиляции Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ истинности.

Для Ρ†ΠΈΠΊΠ»Π° Π² C / C ++

Π¦ΠΈΠΊΠ» for — это Π±ΠΎΠ»Π΅Π΅ эффСктивная структура Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C / C ++. Π¦ΠΈΠΊΠ» for i — структура управлСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ, которая позволяСт Π½Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис для Ρ†ΠΈΠΊΠ»Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π° FOR.
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π»ΠΎ присвоСно Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² для Ρ†ΠΈΠΊΠ»Π° .
  • УсловиС — это логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ провСряСт ΠΈ сравниваСт счСтчик (ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) для фиксированной ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ останавливаСт Ρ†ΠΈΠΊΠ» for , ΠΊΠΎΠ³Π΄Π° условиС Π»ΠΎΠΆΠ½ΠΎ.
  • Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ / ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ (ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚) счСтчик Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС Ρ†ΠΈΠΊΠ»Π° FOR:

Π’Ρ‹Ρ…ΠΎΠ΄:

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ ΡΠ΅Ρ€ΠΈΡŽ ΠΎΡ‚ 0 Π΄ΠΎ 10, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» FOR.

Π¨Π°Π³ 1 . ОбъявлСна ​​пСрСмСнная i с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… int для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π¨Π°Π³ 2 . Π’ Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i = 1, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‡Π°ΡΡ‚ΡŒ условия ΠΈ Ρ‡Π°ΡΡ‚ΡŒ приращСния.

Π¨Π°Π³ 3 . Π’ Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° Ρƒ нас Π΅ΡΡ‚ΡŒ функция ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π² консоли. ПослС Π²Ρ‹Π²ΠΎΠ΄Π° i = 1 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ ΠΈ станСт 2 . Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2.УсловиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½Π΅Π½ΠΎ снова, ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ условиС истинно, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ†ΠΈΠΊΠ», ΠΈ ΠΎΠ½ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π΄Π²Π° Π½Π° экранС. Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 10. ПослС этого Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΈ Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° сСрия ΠΎΡ‚ 0 Π΄ΠΎ 10.

Π’ C / C ++ Ρ†ΠΈΠΊΠ» for ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько условий, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части.

НапримСр:

Π’Ρ‹Ρ…ΠΎΠ΄:

Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» компилируСтся Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ошибок, Π½ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 0-10, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 2-Π΅ условиС считаСтся 1-ΠΌ условиСм, просто оцСниваСтся ΠΈ сохраняСтся Π² сторонС, вСсь Ρ†ΠΈΠΊΠ» выполняСтся Π½Π° основС 2-Π³ΠΎ условия.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΠ±Π° условия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ && .

Π’Ρ‹Ρ…ΠΎΠ΄:

И Π² Ρ†ΠΈΠΊΠ»Π΅ FOR ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ присвоСниС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния, условиС ΠΈ / ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой.

НапримСр:

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

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ†ΠΈΠΊΠ» Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ внСшнСго Ρ†ΠΈΠΊΠ»Π°, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» повторяСт вСсь свой Ρ†ΠΈΠΊΠ».

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния:

Π’Ρ‹Ρ…ΠΎΠ΄ :

ЗаявлСниС ΠΎ Ρ€Π°Π·Ρ€Ρ‹Π²Π΅

Π Π°Π·Ρ€Ρ‹Π² Π² C / C ++ — это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π² основном Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ послС выполнСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ случая.BREAK Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°, ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ возвращаСтся ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ послС Ρ†ΠΈΠΊΠ»Π°.

Бинтаксис:

Π’ основном ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° фактичСскоС количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ нСизвСстно ΠΈΠ»ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π½Π° основании Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия.

Π’Ρ‹Ρ…ΠΎΠ΄:

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ЗаявлСниС

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Continue Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ BREAK Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ: всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° встрСчаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue вмСсто Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°, ΠΎΠ½ заставляСт Ρ†ΠΈΠΊΠ» Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ пропускаСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Π² Ρ†ΠΈΠΊΠ»Π΅.

НапримСр:

Π’Ρ‹Ρ…ΠΎΠ΄:

Π˜Ρ‚Π°ΠΊ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5 ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ.

ПояснСниС

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

ΠŸΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (C ++) | Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Microsoft

  • Π§ΠΈΡ‚Π°Ρ‚ΡŒ 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

ВыполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ нСсколько Ρ€Π°Π·, ΠΏΠΎΠΊΠ° условиС Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для см. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для (C ++).

Бинтаксис

для ( init-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ; cond-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ; Ρ†ΠΈΠΊΠ»-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° )

ЗамСчания

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для для создания Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

для элСмСнтов ΠΏΠ΅Ρ‚Π»ΠΈ

Имя синтаксиса ΠŸΡ€ΠΈ исполнСнии ОписаниС
init-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for , init-expression выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ cond-expression . Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ индСксов Ρ†ΠΈΠΊΠ»Π°. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ выраТСния ΠΈΠ»ΠΈ объявлСния.
ΠΊΠΎΠ½Π΄-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° , Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. инструкция выполняСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли cond-expression ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true (Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅). Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π΅Π΅ цСлочислСнный Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ класса, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² цСлочислСнный Ρ‚ΠΈΠΏ.ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°.
пСтля-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ инструкции . ПослС выполнСния loop-expression вычисляСтся cond-expression . ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для увСличСния индСксов Ρ†ΠΈΠΊΠ»Π°.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы использования для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° .

  #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;

int main () {
    // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ счСтчика ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна ​​в Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
    for (int i = 0; i <2; i ++) {
       cout << i;
    }
    // Π’Ρ‹Π²ΠΎΠ΄: 01
    // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ счСтчика ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСна ​​внС Ρ†ΠΈΠΊΠ»Π° for.
    int i;
    for (i = 0; i <2; i ++) {
        cout << i;
    }
    // Π’Ρ‹Π²ΠΎΠ΄: 01
    // Π­Ρ‚ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ for эквивалСнтны Ρ†ΠΈΠΊΠ»Ρƒ while.
    я = 0;
    Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (я <2) {
        cout << i ++;
    }
    // Π’Ρ‹Π²ΠΎΠ΄: 01
}
  

init-expression ΠΈ loop-expression ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми.НапримСр:

  #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;

int main () {
    int i, j;
    for (i = 5, j = 10; i + j <20; i ++, j ++) {
        cout << "i + j =" << (i + j) << '\ n';
    }
}
    // Π’Ρ‹Ρ…ΠΎΠ΄:
    я + j = 15
    я + j = 17
    я + j = 19
  

loop-expression ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ способами.

  #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;

int main () {
for (int i = 10; i> 0; i--) {
        cout << i << '';
    }
    // Π’Ρ‹Π²ΠΎΠ΄: 10 9 8 7 6 5 4 3 2 1
    for (int i = 10; i <20; i = i + 2) {
        cout << i << '';
    }
    // Π’Ρ‹Π²ΠΎΠ΄: 10 12 14 16 18
  

Π¦ΠΈΠΊΠ» для Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° выполняСтся break , return ΠΈΠ»ΠΈ goto (ΠΊ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π° для ) Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° .ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue Π² Ρ†ΠΈΠΊΠ»Π΅ для Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

Если cond-expression ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, ΠΎΠ½ΠΎ считаСтся истинным , ΠΈ Ρ†ΠΈΠΊΠ» для Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π±Π΅Π· прСрывания , return ΠΈΠ»ΠΈ return , ΠΈΠ»ΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… выписка .

Π₯отя Ρ‚Ρ€ΠΈ поля ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, тСстирования Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈ увСличСния, ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ этим использованиСм.НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ числа ΠΎΡ‚ 0 Π΄ΠΎ 4. Π’ этом случаС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся пустым ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ:

  #include 
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ пространство ΠΈΠΌΠ΅Π½ std;

int main ()
{
    int i;
    for (i = 0; i <5; cout << i << '\ n', i ++) {
        ;
    }
}
  

для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ стандарт C ++

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C ++ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная, объявлСнная Π² Ρ†ΠΈΠΊΠ»Π΅ для , Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ области дСйствия послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° для .НапримСр:

  для (int i = 0; i <5; i ++) {
   // сдСлай Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ
}
// i Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π½Π΅ области дСйствия / Za ΠΈΠ»ΠΈ / Zc: forScope
  

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² / Ze пСрСмСнная, объявлСнная Π² Ρ†ΠΈΠΊΠ»Π΅ для , остаСтся Π² области дСйствия Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ закончится ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Π° для Ρ†ΠΈΠΊΠ»Π° .

/ Zc: forScope обСспСчиваСт стандартноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for, Π±Π΅Π· нСобходимости ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ / Za .

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ различия Π² области видимости Ρ†ΠΈΠΊΠ»Π° для , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ / Ze ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  // for_statement5.cpp
int main () {
   int я = 0; // скрыто var с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ for
   for (int i = 0; i <3; i ++) {}

   for (int i = 0; i <3; i ++) {}
}
  

Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ стандартноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, объявлСнной Π² Ρ†ΠΈΠΊΠ»Π΅ для , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ для , Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ области дСйствия послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°. Когда пСрСмСнная ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ для , компилятор Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ Π΅Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ области Ρ†ΠΈΠΊΠ»Π° для .Он продвигаСтся, Π΄Π°ΠΆΠ΅ Ссли ΡƒΠΆΠ΅ сущСствуСт локальная пСрСмСнная с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ while (C ++)
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ do-while (C ++)
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° (C ++)

C ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° программирования

Π¦ΠΈΠΊΠ» - ΠΎΡ‡Π΅Π½ΡŒ ваТная Ρ‡Π°ΡΡ‚ΡŒ любого языка программирования для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ любой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков программирования сущСствуСт Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксис объявлСния различаСтся для Ρ€Π°Π·Π½Ρ‹Ρ… языков.ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² нСсколько Ρ€Π°Π·, для выполнСния Π·Π°Π΄Π°Ρ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†ΠΈΠΊΠ». Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования, язык C содСрТит Ρ†ΠΈΠΊΠ»Ρ‹ for, while ΠΈ do-while. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ объявлСниС ΠΈ использованиС этих Ρ‚Ρ€Π΅Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π° языкС C Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ использования Ρ†ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

для ΠΏΠ΅Ρ‚Π»ΠΈ:

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… частСй. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ, вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт количСство Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ, Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для увСличСния ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. пСтля.

Бинтаксис:

для (инициализация; условиС; ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ / ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅)
{
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€-1: Ρ†ΠΈΠΊΠ» for с ΠΎΠ΄Π½ΠΈΠΌ условиСм

Условия ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅ for. Π¦ΠΈΠΊΠ» For ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ условиС, нСсколько условий ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ условия. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Ρ†ΠΈΠΊΠ»Π° for с ΠΎΠ΄Π½ΠΈΠΌ условиСм. Π—Π΄Π΅ΡΡŒ массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой повторяСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for. Π¦ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ 5 Ρ€Π°Π· ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива.

#include
int main ()
{
// ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
Ρ†Π΅Π½Π° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой [6] = {870,45, 345,90, 209,45, 200,45, 543,67, 450,69};

// РаспСчатайтС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» for
for (int n = 0; n <= 5; n ++)
{
printf ("%. 2f \ n", price [n]);
}

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€-2: Ρ†ΠΈΠΊΠ» for с нСсколькими условиями

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Ρ†ΠΈΠΊΠ»Π° for с нСсколькими условиями.Π’ Ρ†ΠΈΠΊΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, x ΠΈ y. Π’ Π»ΠΎΠ³ΠΈΠΊΠ΅ Π˜Π›Π˜ Π² качСствС условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° условия. Когда Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x Π±ΡƒΠ΄Π΅Ρ‚ большС 30 ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ y Π±ΡƒΠ΄Π΅Ρ‚ мСньшС 5, Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ значСния x ΠΈ y.

#include
int main ()
{
// ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
int x, y;

// Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ значСния x ΠΈ y Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° условия Π½Π΅ вСрнутся Π² истину
для (x = 50, y = 10; x> 30 || y <5; x = x - 5, y ++)
{
printf ("% d,% d \ n", x, y);
}

return 0;
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€-3: Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для

Когда Ρ†ΠΈΠΊΠ» for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for, ΠΎΠ½ называСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for.ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ 5 Ρ€Π°Π·, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ 8 Ρ€Π°Π·. Когда значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… i ΠΈ j Ρ€Π°Π²Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ значСния ΠΎΠ±Π΅ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

#include
int main ()
{
// ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ Ρ†ΠΈΠΊΠ» 5 Ρ€Π°Π·
для (int i = 1; i <6; i ++)
{
// Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»Π° 8 Ρ€Π°Π·
для (int j = 1; j <9; j ++)
{
// Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ значСния i ΠΈ j, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° Ρ€Π°Π²Π½Ρ‹
Ссли (я == j)
printf ("% d,% d \ n", i, j);
}
}
Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}

Ρ†ΠΈΠΊΠ» while:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ опрСдСляСтся ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ while, ΠΈ условиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ провСряСтся ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π² Ρ†ΠΈΠΊΠ».По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ†ΠΈΠΊΠ» while называСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ, управляСмым Π²Ρ…ΠΎΠ΄ΠΎΠΌ. Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° условиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false.

синтаксис:

Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (условиС)
{
выписки
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Ρ†ΠΈΠΊΠ» while для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ сообщСния

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Ρ†ΠΈΠΊΠ»Π° while. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ n ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ счСтчик Ρ†ΠΈΠΊΠ»Π°, ΠΈ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ 3 Ρ€Π°Π·Π°. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния n Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ сообщСниС. Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ Β«Π”ΠΎΠ±Ρ€ΠΎΠ΅ ΡƒΡ‚Ρ€ΠΎΒ» для 1, Β«Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь» для 2 ΠΈ Β«Π”ΠΎΠ±Ρ€Ρ‹ΠΉ Π²Π΅Ρ‡Π΅Ρ€Β» для 3.

#include
int main ()
{
// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
int n = 1;

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ условиС
Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (n <= 3)
{
// Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ сообщСниС Π½Π° основС значСния n
Ссли (n == 1)
printf ("Π”ΠΎΠ±Ρ€ΠΎΠ΅ ΡƒΡ‚Ρ€ΠΎ \ n");
ΠΈΠ½Π°Ρ‡Π΅, Ссли (n == 2)
printf ("Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь \ n");
Π΅Ρ‰Π΅
printf ("Π”ΠΎΠ±Ρ€Ρ‹ΠΉ Π²Π΅Ρ‡Π΅Ρ€ \ n");

// Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
n ++;
}

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}

Π¦ΠΈΠΊΠ» Do-while:

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» while, Π½ΠΎ условиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ провСряСтся послС Π²Ρ…ΠΎΠ΄Π° Π² Ρ†ΠΈΠΊΠ».По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΎΠ½ называСтся ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠΌ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот Ρ†ΠΈΠΊΠ» ΠΏΠΎΠ·ΠΆΠ΅ провСряСт условиС, ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π΄Π°ΠΆΠ΅ Ссли условиС Π²Π΅Ρ€Π½Π΅Ρ‚ истину ΠΈΠ»ΠΈ лоТь.

Бинтаксис:

Π΄Π΅Π»Π°Ρ‚ΡŒ {
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
} Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (условиС)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5: Ρ†ΠΈΠΊΠ» do-while для нахоТдСния ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° числа

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ число ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ станСт большС 10.Π¦ΠΈΠΊΠ» Do-while всСгда провСряСт условиС Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ†ΠΈΠΊΠ»Π°. Π—Π½Π°Ρ‡ΠΈΡ‚, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ числа, Π° условиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.

#include
int main ()
{
int n, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚;

ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ {

// ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ число Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ…
printf ("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число:");
scanf ("% d", & n);

// Найти ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа
result = n * n;

// Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
printf (Β«ΠšΠ²Π°Π΄Ρ€Π°Ρ‚% d Ρ€Π°Π²Π΅Π½% d \ nΒ», n, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚);

} Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (n <10); Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами:

  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C для вычислСния суммы всСх Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 10 Π΄ΠΎ 50.
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C, Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ число ΠΈΠ· 3 Ρ†ΠΈΡ„Ρ€ ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ сумму Ρ†ΠΈΡ„Ρ€. [Ссли Π½Π° Π²Ρ…ΠΎΠ΄Π΅ 123, Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 6].
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ элСмСнтов массива Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C для отобраТСния ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ корня ΠΈΠ· 10 ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° языкС C для вычислСния суммы ΠΎΡ‚ 50 Π΄ΠΎ 100.

Π’Ρ‹Π²ΠΎΠ΄:

ИспользованиС Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ любого Ρ‚ΠΈΠΏΠ° простой ΠΈΠ»ΠΈ слоТной Π·Π°Π΄Π°Ρ‡ΠΈ.Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС C. Но Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ бСсконСчный Ρ†ΠΈΠΊΠ», Ρ†ΠΈΠΊΠ» с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ break, Ρ†ΠΈΠΊΠ» с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ continue ΠΈ Ρ‚. Π”. Π­Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой ΠΈΠ· Ρ‚Ρ€Π΅Ρ… упомянутых Ρ†ΠΈΠΊΠ»ΠΎΠ². ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» Π½Π° основС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ эффСктивным.

7.9 - Для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² - Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ C ++

НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° Π² C ++ являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for . ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for) ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ очСвидная пСрСмСнная Ρ†ΠΈΠΊΠ»Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Π½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°.

Начиная с C ++ 11, сущСствуСт Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° для Ρ†ΠΈΠΊΠ»ΠΎΠ² . ΠœΡ‹ рассмотрим классичСский для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ (10.19 - Π¦ΠΈΠΊΠ»Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ), ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ массивы ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° абстрактно выглядит довольно просто:

 for (инициализация; условиС; ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅)
   ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅
 

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for , - это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² эквивалСнтный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ while :

 {// ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊ здСсь
    init-заявлСниС; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π΅
    Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (условиС)
    {
        ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅;
        ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ условия
    }
} // ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°, здСсь выходят Π·Π° Ρ€Π°ΠΌΠΊΠΈ
 

ΠžΡ†Π΅Π½ΠΊΠ° для выписок

для выписки оцСниваСтся Π² 3 части:

Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся инструкция init.Π­Ρ‚ΠΎ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС Ρ†ΠΈΠΊΠ»Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ init ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Β«ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ†ΠΈΠΊΠ»Π°Β», которая Π½Π° самом Π΄Π΅Π»Π΅ являСтся Ρ„ΠΎΡ€ΠΌΠΎΠΉ области видимости Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ опрСдСлСния Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°. Π’ нашСм эквивалСнтС Ρ†ΠΈΠΊΠ»Π° while Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ init находится Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°, содСрТащСго Ρ†ΠΈΠΊΠ», поэтому ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ init, выходят Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ области дСйствия, ΠΊΠΎΠ³Π΄Π° Π±Π»ΠΎΠΊ, содСрТащий Ρ†ΠΈΠΊΠ», заканчиваСтся.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° оцСниваСтся условиС. Если это истинно, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ выполняСтся. Если это ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°.

НаконСц, послС выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° вычисляСтся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для увСличСния ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΡ†Π΅Π½Π΅Π½ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ возвращаСтся ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΡˆΠ°Π³Ρƒ (ΠΈ условиС оцСниваСтся снова).

Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΎΠ±Ρ€Π°Π·Π΅Ρ† для Ρ†ΠΈΠΊΠ»Π° ΠΈ обсудим, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

  #include 

int main ()
{
    for (int count {1}; count <= 10; ++ count)
        std :: cout << count << '';

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ объявляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ count ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1 .

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, вычисляСтся count <= 10 , ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ count Ρ€Π°Π²Π½ΠΎ 1 , это оцСниваСтся ΠΊΠ°ΠΊ true .Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, выполняСтся инструкция, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 1 ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π».

НаконСц, вычисляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ++ count , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ число count Π΄ΠΎ 2 . Π—Π°Ρ‚Π΅ΠΌ Ρ†ΠΈΠΊΠ» возвращаСтся ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΡˆΠ°Π³Ρƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ снова вычисляСтся count <= 10 . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ count ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 , это ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ , поэтому Ρ†ΠΈΠΊΠ» повторяСтся снова. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 2 ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π», Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ count увСличиваСтся Π΄ΠΎ 3 .Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ count Π½Π΅ увСличится Π΄ΠΎ 11 , послС Ρ‡Π΅Π³ΠΎ count <= 10 оцСниваСтся ΠΊΠ°ΠΊ false , ΠΈ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 1 2 3 4 5 6 7 8 9 10
 

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ для Ρ†ΠΈΠΊΠ»Π° Π² эквивалСнтный while Ρ†ΠΈΠΊΠ» :

  #include 

int main ()
{
    {// Π±Π»ΠΎΠΊ здСсь обСспСчиваСт Π±Π»ΠΎΠΊ для подсчСта
        int count {1}; // наш init-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
        while (count <= 10) // нашС условиС
        {
            std :: cout << count << ''; // нашС заявлСниС
            ++ count; // нашС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
        }
    }
}  

Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΏΡ€Π°Π²Π΄Π°? ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ здСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ внСшниС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ счСтчик Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ области дСйствия, ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» заканчиваСтся.

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

Π­Ρ‚ΠΎ прямоС ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ для Ρ†ΠΈΠΊΠ»Π° , с счСтчиком Ρ†ΠΈΠΊΠ» ΠΎΡ‚ 0 Π΄ΠΎ (Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ) показатСля стСпСни .

Если ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСпСни Ρ€Π°Π²Π΅Π½ 0, Ρ†ΠΈΠΊΠ» for выполнится 0 Ρ€Π°Π·, Π° функция Π²Π΅Ρ€Π½Π΅Ρ‚ 1.
Если ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСпСни Ρ€Π°Π²Π΅Π½ 1, Ρ†ΠΈΠΊΠ» for выполнится 1 Ρ€Π°Π·, ΠΈ функция Π²Π΅Ρ€Π½Π΅Ρ‚ 1 * основаниС.
Если ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСпСни Ρ€Π°Π²Π΅Π½ 2, Ρ†ΠΈΠΊΠ» for Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ 2 Ρ€Π°Π·Π°, ΠΈ функция Π²Π΅Ρ€Π½Π΅Ρ‚ 1 * основаниС * основаниС.

Π₯отя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π° Π½Π° 1, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π΅Π΅:

  #include 

int main ()
{
    for (int count {9}; count> = 0; --count)
        std :: cout << count << '';

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π­Ρ‚ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 9 8 7 6 5 4 3 2 1 0
 

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° 1 с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ:

  #include 

int main ()
{
    for (int count {9}; count> = 0; count - = 2)
    std :: cout << count << '';

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π­Ρ‚ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 9 7 5 3 1
 

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ошибки

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

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  #include 

int main ()
{
    // упс, ΠΌΡ‹ использовали operator <вмСсто operator <=
    for (unsigned int count {1}; count <5; ++ count)
    {
        std :: cout << count << '';
    }

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ 1 2 3 4 5 , Π½ΠΎ ΠΎΠ½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 2 3 4 , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ использовали Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

Π₯отя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частой ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ этих ошибок являСтся использованиС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ рСляционного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ использовании ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° вмСсто постинкрСмСнта ΠΈΠ»ΠΈ постдСкрСмСнта, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ выраТСния

МоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для Ρ†ΠΈΠΊΠ»ΠΎΠ² , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠ»ΠΈ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ выраТСния. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ опустим init-statement ΠΈ end-expression, оставив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условиС:

  #include 

int main ()
{
    int count {0};
    for (; count <10;) // Π½Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ выраТСния
    {
        std :: cout << count << '';
        ++ count;
    }

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π­Ρ‚ΠΎΡ‚ для Ρ†ΠΈΠΊΠ»Π° Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 0 1 2 3 4 5 6 7 8 9
 

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅ for , ΠΌΡ‹ сдСлали это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сдСлали это ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для акадСмичСских Ρ†Π΅Π»Π΅ΠΉ, Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π° (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ) ΠΈΠ»ΠΈ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом). ΠΆΠ΅Π»Π°Π½Π½Ρ‹ΠΉ.

Π₯отя Π²Ρ‹ Π½Π΅ часто Π²ΠΈΠ΄ΠΈΡ‚Π΅ это, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создаСт бСсконСчный Ρ†ΠΈΠΊΠ»:

  для (;;)
    ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅;  

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ эквивалСнтСн:

  Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ (ΠΏΡ€Π°Π²Π΄Π°)
    ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅;  

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹, вСроятно, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΊΠ°ΠΊ false .Однако стандарт C ++ явно (ΠΈ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) опрСдСляСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС Π² Ρ†ΠΈΠΊΠ»Π΅ for Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ true .

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ этой Ρ„ΠΎΡ€ΠΌΡ‹ Ρ†ΠΈΠΊΠ»Π° for ΠΈ вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ , Π° (true) .

Для ΠΏΠ΅Ρ‚Π΅Π»ΡŒ с нСсколькими счСтчиками

Π₯отя для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ½ΠΎΠ³Π΄Π° для Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² этом, программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ запятой для измСнСния значСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ:

  #include 

int main ()
{
    for (int x {0}, y {9}; x <10; ++ x, --y)
        std :: cout << x << '' << y << '\ n';

    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» опрСдСляСт ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: x ΠΈ y .Он выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ x Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 9 , ΠΈ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ x увСличиваСтся, Π° y ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

 0 9
1 8
2 7
3 6
4 5
5 4
6 3
7 2
8 1
9 0
 

Π­Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ СдинствСнноС мСсто Π² C ++, Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° запятой считаСтся ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ) ΠΈ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° запятой (Π² ΠΊΠΎΠ½Ρ†Π΅ выраТСния) допустимо Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for .

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ‚Π΅Π»ΡŒ

Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ†ΠΈΠΊΠ» для Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» for Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†ΠΈΠΊΠ» for :

  #include 

int main ()
{
for (char c {'a'}; c <= 'e'; ++ c) // внСшний Ρ†ΠΈΠΊΠ» для Π±ΡƒΠΊΠ²
{
std :: cout << c; // сначала ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ нашС письмо

for (int i {0}; i <3; ++ i) // Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» для всСх чисСл
std :: cout << i;

std :: cout << '\ n';
}

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;
}  

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ внСшнСго Ρ†ΠΈΠΊΠ»Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» выполняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

 a012
b012
c012
d012
e012
 

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ здСсь происходит. Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся внСшний Ρ†ΠΈΠΊΠ», ΠΈ char c инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 'a' . Π—Π°Ρ‚Π΅ΠΌ вычисляСтся c <= 'e' , Ρ‡Ρ‚ΠΎ соотвСтствуСт истинному , поэтому выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для c установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 'a' , сначала пСчатаСтся a . Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ выполняСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 0 , 1 ΠΈ 2 ).Π—Π°Ρ‚Π΅ΠΌ пСчатаСтся новая строка. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π΅Π»ΠΎ внСшнСго Ρ†ΠΈΠΊΠ»Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, поэтому внСшний Ρ†ΠΈΠΊΠ» возвращаСтся Π½Π°Π²Π΅Ρ€Ρ…, c увСличиваСтся Π΄ΠΎ 'b' , ΠΈ условиС Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ оцСниваСтся. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ условиС Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ остаСтся истинным , начинаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ итСрация внСшнСго Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ b012 \ n . И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ For - это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ†ΠΈΠΊΠ» Π² языкС C ++. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ синтаксис ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ для Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ‚Π°ΠΊ часто, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅ ΠΈΡ… Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки!

Для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ всСго, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ пСрСмСнная счСтчика.Если Ρƒ вас Π½Π΅Ρ‚ счСтчика, вСроятно, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ , Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ .

Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ для Ρ†ΠΈΠΊΠ»ΠΎΠ² , Π° Π½Π΅ , Π° Ρ†ΠΈΠΊΠ»Ρ‹ , ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ очСвидная пСрСмСнная Ρ†ΠΈΠΊΠ»Π°.
ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ while Ρ†ΠΈΠΊΠ»Ρ‹ вмСсто для Ρ†ΠΈΠΊΠ»ΠΎΠ² , ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°.

ВрСмя Π²ΠΈΠΊΡ‚ΠΎΡ€ΠΈΠ½Ρ‹

Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ для Ρ†ΠΈΠΊΠ»Π° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число ΠΎΡ‚ 0 Π΄ΠΎ 20.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

  для (int count {0}; count <= 20; count + = 2)
    std :: cout << count << '\ n';  

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ sumTo (), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ цСлочислСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с ΠΈΠΌΠ΅Π½Π΅ΠΌ value ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму всСх чисСл ΠΎΡ‚ 1 Π΄ΠΎ value.

НапримСр, sumTo (5) Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 15, Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 1 + 2 + 3 + 4 + 5.

Подсказка: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· Ρ†ΠΈΠΊΠ»Π° для накоплСния суммы ΠΏΡ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ 1 Π΄ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ pow () ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ общая пСрСмСнная для накоплСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

  int sumTo (Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
{
    int total {0};
    for (int count {1}; count <= value; ++ count)
        total + = count;

    общая сумма Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°;
}  

Π§Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for?

  // Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ всС числа ΠΎΡ‚ 9 Π΄ΠΎ 0
for (unsigned int count {9}; count> = 0; --count)
    std :: cout << count << '';  

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» for выполняСтся, ΠΏΠΎΠΊΠ° count> = 0 .

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

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