Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Освой ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π‘++ Π·Π° 21 дСнь.Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 39

Автор ДТСсс Π›ΠΈΠ±Π΅Ρ€Ρ‚ΠΈ

ΠŸΡ€ΠΈ использовании Π² конструкциях do.. .while ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue Π΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ использовании с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ while. ЕдинствСнноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ этих Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² состоит Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ условия продолТСния Ρ†ΠΈΠΊΠ»Π°. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΎΠ½ΠΎ контролируСтся ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” послС Π½Π΅Π³ΠΎ.

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

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствия: ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условия продолТСния Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° (листинг 7.8).

Листинг 7.8. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while

1: // Листинг 7.8.

2: // Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while

3:

4: #include <iostream.h>

5:

6: int main()

7: {

8:    int counter = 0;

9:

10:   while(counter < 5)

11:   {

12:     counter++;

13:     cout << " Looping! ";

14:   }

15:

16:   cout << "\nCounter: " << counter << " \n";

17:   return 0;

18: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Looping! Looping! Looping! Looping! Looping!

Counter: 5.


Анализ: Π’ строкС 8 пСрСмСнная Ρ†ΠΈΠΊΠ»Π° counter инициализируСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π—Π°Ρ‚Π΅ΠΌ Π² строкС 10 провСряСтся условиС продолТСния Ρ†ΠΈΠΊΠ»Π°, Π° Π² строкС 12 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’ строкС 13 Π½Π° экран выводится сообщСниС, наглядно ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ цикличСский процСсс. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² Ρ†ΠΈΠΊΠ»Π΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

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

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

Листинг 7.8. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†ΠΈΠΊΠ»Π° for

1: // Листинг 7.9.

2: // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ†ΠΈΠΊΠ»Π° for

3:

4: #include <iostream.h>

5:

6: int main()

7: {

8:    int counter;

9:    for (counter = 0; counter < 5; counter++)

10:     cout << " Looping! ";

11:

12:   cout << "\nCounter: " << counter << ".\n";

13:   return 0;

14: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Looping! Looping! Looping! Looping! Looping!

Counter: 5.


Анализ: Π’ строкС 9 ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for задаСтся Ρ†ΠΈΠΊΠ», ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ число ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ counter. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° провСряСтся условиС продолТСния Ρ†ΠΈΠΊΠ»Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ counter увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, записанного Π² строкС 10. Π’ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· любого количСства ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ выраТСния с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ for

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


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° for

Бинтаксис установок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π° for ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:


for (инициализация, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, опСрация)

    выраТСния;


Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния счСтчика Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ для выполнСния ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ»Π°. Под ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° языкС C++, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выполняСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ†ΠΈΠΊΠ»Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт строки Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. послС Ρ‡Π΅Π³ΠΎ выполняСтся Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ/ΠΏΡ€ΠΈΡ€Π°Ρ‰ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика Π½Π° Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:

// Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Hello Π΄Π΅ΡΡΡ‚ΡŒ Ρ€Π°Π·

for(int 1=0; i<10; i++)

   cout << "Hello!" << endl;


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:

for(int 1=0; i<10; i++)

{

   cout << "Hello!" << endl;

   cout << "the value of i is: " << i << endl;

}


Π¦ΠΈΠΊΠ» for Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

1. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчику Ρ†ΠΈΠΊΠ»Π°.

2. Π’ычисляСтся значСния выраТСния, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ условиС продолТСния Ρ†ΠΈΠΊΠ»Π°.

3. Π•сли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ условия Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ρ‚ΠΎ сначала выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ заданная опСрация Π½Π°Π΄ счСтчиком Ρ†ΠΈΠΊΠ»Π°.

На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ шаги 2 ΠΈ 3 ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ приращСния счСтчиков Ρ†ΠΈΠΊΠ»Π°

Бинтаксис задания Ρ†ΠΈΠΊΠ»Π° for позволяСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…- счСтчиков, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ слоТныС условия продолТСния Ρ†ΠΈΠΊΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ счСтчиками Ρ†ΠΈΠΊΠ»Π°. Если ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния нСскольким счСтчикам ΠΈΠ»ΠΈ выполняСтся нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми. Π’ листингС 7.10 ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° счСтчика, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

Листинг 7.10. ИспользованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… счСтчиков Π² Ρ†ΠΈΠΊΠ»Π΅ for

1: // Листинг 7.10.

2: // ИспользованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… счСтчиков

3: // Π² Ρ†ΠΈΠΊΠ»Π΅ for

4:

5: #include <iostream.h>

6:

7: int main()

8: {

9:    for (int i=0, j=0; i<3; i++, j++)

10:   cout << "i: " << i << " j: " << j << endl;

11:   return 0;

12: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

i: 0 j: 0

i: 1 j: 1

i: 2 j: 2


Анализ: Π’ строкС 9 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ i ΠΈ j ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ значСниями. Π—Π°Ρ‚Π΅ΠΌ провСряСтся условиС i<3 ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ справСдливо, выполняСтся пСрвая итСрация Ρ†ΠΈΠΊΠ»Π°. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ осущСствляСтся Π²Ρ‹Π²ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ счСтчиков Π½Π° экран. ПослС этого выполняСтся Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Ρ‡Π°ΡΡ‚ΡŒ конструкции for, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…-счСтчиков ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. ПослС выполнСния строки 10 ΠΈ измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… условиС провСряСтся снова. Если условиС всС Π΅Ρ‰Π΅ справСдливо, запускаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ итСрация Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° условиС продолТСния Ρ†ΠΈΠΊΠ»Π° Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡΡ. Π’ этом случаС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ послС Ρ†ΠΈΠΊΠ»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ.

НулСвыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° for

Π›ΡŽΠ±ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ†ΠΈΠΊΠ»Π° for ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½. ΠŸΡ€ΠΎΠΏΡƒΡΠΊ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ использованиС Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НулСвой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠ°ΠΊ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ, отдСляСтся ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π° for символом Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой (;). Если ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° for, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 7.11, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ примСнСния Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈ использовании ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while.

Листинг 7.11. НулСвыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° for

1: // Листинг 7.11.

2: // НулСвыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° for

3:

4: #include <iostream.h>

5:

6: int main()

7: {

8:    int counter = 0;

9:

10:   for( ; counter < 5; )

11:   {

12:     counter++;

13:     cout << "Looping! ";

14:   }

15:

16:   cout << "\nCounter: " << counter << ".\n";

17:   return 0;

18: }


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Looping! Looping! Looping! Looping! Looping!

Counter: 5.


Анализ: ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π² точности совпадаСт с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния Ρ†ΠΈΠΊΠ»Π° while ΠΈΠ· листинга 7.8. Π’ строкС 8 присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ counter. Установки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π° for, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² строкС 10, содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ условия продолТСния Ρ†ΠΈΠΊΠ»Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π° Π² конструкции for Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡƒΡ‰Π΅Π½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, этот Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅


while (counter < 5).


РассмотрСнный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ возмоТности языка C++ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ мноТСством способов. Листинг 7.11 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ скорСС для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ гибкости возмоТностСй C++, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ программист Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ всС Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ†ΠΈΠΊΠ»Π° for, Π° для управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования конструкции for Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 7.12.