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

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

Π¦ΠΈΠΊΠ» for Π² C++ (+ Π²ΠΈΠ΄Π΅ΠΎ)

Как Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π² содСрТании, Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС сайта, Π² языкС C++ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ нСсколько Π²ΠΈΠ΄ΠΎΠ² Ρ†ΠΈΠΊΠ»ΠΎΠ². Π¦ΠΈΠΊΠ» for Β ΠΌΡ‹ рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния. А Ρ†ΠΈΠΊΠ»Ρ‹ while ΠΈ do while, рассмотрСны Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

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

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ – Π½Π΅ самоС интСрСсноС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сколько ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ колСсико ΠΌΡ‹ΡˆΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΊΠΎΠ΄Π°.  А ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ»ΠΎΠΌ

for Β ΠΈ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ, Ρ‚Π΅ΠΌ самым Π² дСсятки раз,  врСмя Π½Π° написаниС этой β€œΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉβ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ сам Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°. Π’ΠΎΡ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту задачу с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ for:

#include <iostream> using namespace std; int main() { for (int i = 0; i < 500; i++) { cout << i + 1 << endl; } return 0; }

#include <iostream>

using namespace std;

Β 

int main()

{

for (int i = 0; i < 500; i++)

{

cout << i + 1 << endl;

}

return 0;

}

ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ наш Ρ†ΠΈΠΊΠ» в строкС 6 . Для этого пишСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово for ΠΈ Π·Π° Π½ΠΈΠΌΒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки Β () . Π’ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная (пСрСмСнная-счСтчик)Β i. Π’ нашСм случаС, ΠΎΠ½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½ΡƒΠ»Π΅ΠΌ. ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стоит Ρ‚ΠΎΡ‡ΠΊΠ° с запятой

;Β . Π”Π°Π»Π΅Π΅ располагаСм условиС:Β i < 500 (ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° i мСньшС 500, ΠΊΠΎΠ΄ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ) ΠΈ снова Ρ‚ΠΎΡ‡ΠΊΠ° с запятой ; . ИмСнно ΠΎΠ½ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ β€œΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒβ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎ ΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡΒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° (ΠΊΠΎΠ΄ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках {}). НапослСдок ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ iΒ  с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ шагом Ρ†ΠΈΠΊΠ»Π° (Ρƒ нас – ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ постфиксный ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚). Если ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ располоТСно Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π²ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ – Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΠΎΠΊΠ° пСрСмСнная i Β  мСньшС  пятисот, увСличивая i Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Ρ†ΠΈΠΊΠ»Π°.Β Π¨Π°Π³ Ρ†ΠΈΠΊΠ»Π° Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. А ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-счСтчик – ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° управляСт количСством ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.

РазбСрСм для наглядности нСсколько шагов Ρ†ΠΈΠΊΠ»Π° ΠΈΠ· нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.Β ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈΒ Ρ†ΠΈΠΊΠ»Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная Ρ€Π°Π²Π½Π° 0. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

i + 1 (0 + 1). Когда Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ, происходит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅) ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ iΒ Β Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹Β ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках () послС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½Π° становится Ρ€Π°Π²Π½ΠΎΠΉΒ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Вторая итСрация начинаСтся с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия (Ρƒ нас i < 500). Если i Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Β < 500, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Β Ρ‚Π΅Π»Π° Β Ρ†ΠΈΠΊΠ»Π°  повторится – Π½Π° экран снова покаТСтся i + 1, Ρ‡Ρ‚ΠΎ эквивалСнтно 1 + 1, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 2. ПослСдний Ρ€Π°Π· Ρ†ΠΈΠΊΠ» выполнится, ΠΊΠΎΠ³Π΄Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 499 ΠΈ Π½Π° экран покаТСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i + 1 (499 + 1). ПослС этого Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ снова увСличится Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Π½ΠΎ условиС повторСния Ρ†ΠΈΠΊΠ»Π° ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ i (500) ΡƒΠΆΠ΅ Π½Π΅ мСньшС 500.  ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки ΠΊΠΎΠ΄Π°, располоТСнной Π·Π° Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ
}
Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобкой Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ посмотритС сами, запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

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

#include <iostream> using namespace std; int main() { for (int i = 500; i > 0; i—) { cout << i << endl; } return 0; }

#include <iostream>

using namespace std;

Β 

int main()

{

for (int i = 500; i > 0; i—)

{

cout << i << endl;

}

return 0;

}

НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ постфиксный ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚. ИзмСняСм ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒΒ ++i, Β i += 2

, Β i += 20, Β i -= 15… НапримСр:

ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная i  измСняСтся ΠΎΡ‚ 8 Π΄ΠΎ 88 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ этом шаг измСнСния Ρ€Π°Π²Π΅Π½ 8. Π’ΠΎ Π΅ΡΡ‚ΡŒ сначала i = 8, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ 16 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ Π΄ΠΎ 88.

ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная i  измСняСтся ΠΎΡ‚ 3000 Π΄ΠΎ 300 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° 300 (3000, Β 2700, 2400…)

ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная i  измСняСтся ΠΎΡ‚ 0 Β Π΄ΠΎ 100 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌΒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° 10. (0, 10, 20…100)

ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная i  измСняСтся ΠΎΡ‚ 3000 Β Π΄ΠΎ 3 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, с Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌΒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° 10. (3000, 300, 30, 3)

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

for, Π° условиС продолТСния Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ifΒ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ:

#include <iostream> using namespace std; int main() { int i = 1; // объявлСниС ΠΈ инициализация ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ for (;;) // запуск бСсконСчного Ρ†ΠΈΠΊΠ»Π° { cout << i << endl; if (i == 5) // условиС прСрывания бСсконСчного Ρ†ΠΈΠΊΠ»Π° break; // ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», Ссли условиС — истина i++; // ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ } return 0; }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <iostream>

using namespace std;

Β 

int main()

{

int i = 1; // объявлСниС ΠΈ инициализация ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Β 

for (;;) // запуск бСсконСчного Ρ†ΠΈΠΊΠ»Π°

{

cout << i << endl;

Β 

if (i == 5) // условиС прСрывания бСсконСчного Ρ†ΠΈΠΊΠ»Π°

break;Β Β // ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», Ссли условиС — истина

i++; // ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

}

Β 

return 0;

}

ΠžΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ‚Π°ΠΊΠΎΠ΅ понятиС, ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости пСрСмСнной. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i – Ρ‚Π΅Π»ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main(). А Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΎΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Ρ‚Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° forΒ  ΠΈ Π·Π° Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Π»Π°ΠΌΠΈ эта пСрСмСнная ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° нСдоступна (ΠΊ Π½Π΅ΠΉ ΡƒΠΆΠ΅ нСльзя Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ – вывСсти Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° экран, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) Β Π­Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π²ΠΈΠ΄Ρƒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ, Ссли Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ нСсколько Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹ΡˆΠ΅ Π² ΠΊΠΎΠ΄Π΅, Π° Π½Π΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках

() послС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²Β forΒ , для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя. Или ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· этой ситуации. Β  Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стандартным синтаксисом:

for ( ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ;  условиС повторСния Ρ†ΠΈΠΊΠ»Π° Β ; Β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Β ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Β ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β )Β 

Π’Π°ΠΊΒ ΠΊΠΎΠ΄ читаСтся Π»Π΅Π³Ρ‡Π΅, всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π° находится Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ строки ΠΊΠΎΠ΄Π° ΠΈ сколько Π±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² вашСм ΠΊΠΎΠ΄Π΅, Π²Π°ΠΌ Π½Π΅ придСтся ΡƒΡ‚Ρ€ΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅. Π’ Π½Π΅ΠΌ рассмотрСн ΠΈ Ρ†ΠΈΠΊΠ» while

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° программирования ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ находится здСсь – Π—Π°Π΄Π°Ρ‡ΠΈ: Π¦ΠΈΠΊΠ» for.

Π¦ΠΈΠΊΠ» for Π² C++: Π±Π»ΠΎΠΊ-схСма ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

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

НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сообщСниС 100 Ρ€Π°Π·. Π’ΠΎΠ³Π΄Π° вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ 100 Ρ€Π°Π·, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ».

Π­Ρ‚ΠΎ Π±Ρ‹Π» простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСй эффСктивности ΠΈ слоТности Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ»Ρ‹.

Π’ Π‘++ сущСствуСт 3 Ρ‚ΠΈΠΏΠ° Ρ†ΠΈΠΊΠ»ΠΎΠ²:

Π’ этом руководствС основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся Ρ†ΠΈΠΊΠ»Ρƒ for Π² C++.

for loop

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

for (initialization; condition; update) {
    // body of-loop 
}

Π“Π΄Π΅:

  • initialization – ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·;
  • condition – Ссли true, Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for выполняСтся, Ссли false, Ρ†ΠΈΠΊΠ» for Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ;
  • update – обновляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ снова провСряСт условиС.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5

#include <iostream>

using namespace std;

int main() {
        for (int i = 1; i <= 5; ++i) {
        cout << i << " ";
    }
    return 0;
}

Π’Ρ‹Π²ΠΎΠ΄:

1 2 3 4 5

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρi <= 5ДСйствиС
1-йя = 1true1 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½. i увСличиваСтся Π΄ΠΎ 2.
2-йя = 2true2 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. i увСличиваСтся Π΄ΠΎ 3.
3-йя = 3true3 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. i увСличиваСтся Π΄ΠΎ 4.
4-йя = 4true4 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. i увСличиваСтся Π΄ΠΎ 5.
5-йя = 5true5 Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. i увСличиваСтся Π΄ΠΎ 6.
ШСстойя = 6trueΠ¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ тСкста 5 Ρ€Π°Π·

// C++ Program to display a text 5 times

#include <iostream>

using namespace std;

int main() {
    for (int i = 1; i <= 5; ++i) {
        cout <<  "Hello World! " << endl;
    }
    return 0;
}

Π’Ρ‹Π²ΠΎΠ΄:

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² Π‘++:

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρi <= 5ДСйствиС
1-йя = 1trueΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ΡΡ Hello World!, ΠΈ i увСличиваСтся Π΄ΠΎ 2.
2-йя = 2trueΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ΡΡ Hello World!, ΠΈ i увСличиваСтся Π΄ΠΎ 3.
3-йя = 3trueΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ΡΡ Hello World!, ΠΈ i увСличиваСтся Π΄ΠΎ 4.
4-йя = 4trueΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ΡΡ Hello World!, ΠΈ i увСличиваСтся Π΄ΠΎ 5.
5-йя = 5trueΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ΡΡ Hello World!, ΠΈ i увСличиваСтся Π΄ΠΎ 6.
ШСстойя = 6falseΠ¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ суммы ΠΏΠ΅Ρ€Π²Ρ‹Ρ… n чисСл

// C++ program to find the sum of first n natural numbers
// positive integers such as 1,2,3,...n are known as natural numbers

#include <iostream>

using namespace std;

int main() {
    int num, sum;
    sum = 0;

    cout << "Enter a positive integer: ";
    cin >> num;

    for (int count = 1; count <= num; ++count) {
        sum += count;
    }

    cout << "Sum = " << sum << endl;

    return 0;
}

Π’Ρ‹Π²ΠΎΠ΄:

Enter a positive integer: 10
Sum = 55

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – num ΠΈ Sum. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Sum присваиваСтся 0, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ использовали Ρ†ΠΈΠΊΠ» for.

for(int count = 1; count <= num; ++count)

Π“Π΄Π΅:

  • int count = 1: ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ count;
  • count <= num: запускаСт Ρ†ΠΈΠΊΠ» Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° count мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ num;
  • ++ count: ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ count Π½Π° 1 Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Когда count становится 11, условиС Π»ΠΎΠΆΠ½ΠΎ ΠΈ SumΒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 0 + 1 + 2 + … + 10.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for

Π’ C++ 11 Π±Ρ‹Π» прСдставлСн Π½ΠΎΠ²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» for Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ массивы ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹. Π•Π³ΠΎ синтаксис:

for (variable : collection) {
    // body of loop
}

Π—Π΄Π΅ΡΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния Π² collection выполняСтся Ρ†ΠΈΠΊΠ» for, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ присваиваСтся variable.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

#include <iostream>

using namespace std;

int main() {
  
    int num_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  
    for (int n : num_array) {
        cout << n << " ";
    }
  
    return 0;
}

Π’Ρ‹Π²ΠΎΠ΄:

1 2 3 4 5 6 7 8 9 10

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ объявили ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ массив int с ΠΈΠΌΠ΅Π½Π΅ΠΌ num_array. Π’ Π½Π΅ΠΌ 10 элСмСнтов.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали Ρ†ΠΈΠΊΠ» for Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для доступа ΠΊΠΎ всСм элСмСнтам Π² массивС C++.

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

Если условиС Π² Ρ†ΠΈΠΊΠ»Π΅ for всСгда truth, ΠΎΠ½ΠΎ выполняСтся бСсконСчно (ΠΏΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ заполнится). НапримСр:

// infinite for loop
for(int i = 1; i > 0; i++) {
    // block of code
}

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ условиС всСгда truth, послС Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчноС количСство Ρ€Π°Π·.

Π¦ΠΈΠΊΠ» For c ОписаниСм ΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

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

Π¦ΠΈΠΊΠ» for β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ 5 Ρ€Π°Π·. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… кусков ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ синтаксис Ρ†ΠΈΠΊΠ»Π° for ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» for Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ?Β Β 

Бинтаксис Π¦ΠΈΠΊΠ»Π° For Π² Bash

По сути, самый простой синтаксис Ρ†ΠΈΠΊΠ»Π° for ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ список простых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это выглядит Ρ‚Π°ΠΊ:

for VARIABLE in 1 2 3 4 5 .. N
Perform the below command:
Β Β Β  command1
Β Β Β  command2
Β Β Β  commandN
done

На Π΄Π΅Π»Π΅ этот синтаксис Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#!/bin/bash
for i in 1 2 3 4 5
do
Β echo "Hello $i"
done

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° bash ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ появлСнию ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ тСкста:

Hello 1
Hello 2
Hello 3
Hello 4 
Hello 5

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт:

  • #!/bin/bash β€” ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ являСтся скриптом bash
  • i β€” это плСйсхолдСр для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, $i β€” это ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это ΠΊΠ°ΠΊ c/$c ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ
  • in β€” раздСляСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ элСмСнты, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° Π½Π΅ΠΉ
  • 1 2 3 4 5 β€” это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ элСмСнтов, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ
  • do β€” это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ запускаСт Ρ†ΠΈΠΊΠ»Ρ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ энноС количСство Ρ€Π°Π·, ΠΏΡ€ΠΈ этом n β€” это ΠΎΠ±Ρ‰Π΅Π΅ количСство элСмСнтов. Π—Π΄Π΅ΡΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n Ρ€Π°Π²Π½ΠΎ 5
  • echo β€œHello: $i” β€” ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ энноС количСство Ρ€Π°Π·. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ… Π² ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.
  • done β€” останавливаСт Ρ†ΠΈΠΊΠ»

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ вСрсии bash, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅.

Bash вСрсии 3.0+ позволяСт сокращённо Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ β€œ. .”.

#!/bin/bash
for i in {1. .5}
do
Β Β echo "Hai $i"
done

Bash вСрсии 4.0+ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис {START. .END. .INCREMENT}.

#!/bin/bash
for i in {0. .8. .2}
do
Β Β echo "Hai $i"
done

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Hai 0
Hai 2
Hai 4
Hai 6 
Hai 8

Π”Ρ€ΡƒΠ³ΠΈΠ΅ распространённыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ синтаксиса:

for VARIABLE in file1 file2 file3
do
Β Β Β  command1 on $VARIABLE
Β Β Β  command2
Β Β Β  commandN
done

Или Ρ‚Π°ΠΊ:

for OUTPUT in $(Linux-Or-Unix-Command-Here)
do
Β Β Β  command1 on $OUTPUT
Β Β Β  command2 on $OUTPUT
Β Β Β  commandN
done

Π¦ΠΈΠΊΠ» For Π² Bash: ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ синтаксис для выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π½Π° свой VPS-сСрвСр. Если Π²Ρ‹ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ это руководство.

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с bash, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ руководство ΠΏΠΎ bash (Π°Π½Π³Π»). ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ bash Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ .sh. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ, запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

vim NameOfFile.sh

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Ρ„Π°ΠΉΠ» .sh ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΅Π³ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ VIM. ΠžΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ это описано Π² Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠΌ руководствС ΠΏΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ функциям bash.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Bash-Ρ†ΠΈΠΊΠ» For для Боздания БСсконСчного Π¦ΠΈΠΊΠ»Π°

ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ этот Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ остановитС Π΅Π³ΠΎ, Π½Π°ΠΆΠ°Π² Control + C. Π’ этом случаС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Hello WorldΒ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ снова ΠΈ снова сам ΠΏΠΎ сСбС.

#!/bin/bash
for (( ; ; ))
do
Β Β echo "Hello World!"
done

Π¦ΠΈΠΊΠ» For с ВрСмя ВыраТСниями Π² Bash

Π¦ΠΈΠΊΠ» состоит ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ β€” ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (EXP1), условия окончания Ρ†ΠΈΠΊΠ»Π° (EXP2) ΠΈ выраТСния, вычисляСмого послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (EXP3). Иногда люди Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π² стилС C ΠΈΠ·-Π·Π° Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ сходства Π² структурС ΠΊΠΎΠ΄Π° с этим языком программирования. Бинтаксис Ρ†ΠΈΠΊΠ»Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

for (( EXP1; EXP2; EXP3 ))
do
Β Β Β  command1
Β Β Β  command2
Β Β Β  command3
done

А Π²ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ сами:

#!/bin/bash
for (( c=1; c<=5; c++ ))
do Β 
Β Β echo "Hai $c"
done

ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠ΄Π΅, Ρ€Π°Π²Π½ΠΎ 1. Π¦ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° условиС Π² EXP2 истинно (true), Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС 5. Π—Π½Π°ΠΊ, ++, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° 1. Π¦ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, начиная с Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Hai 1
Hai 2
Hai 3
Hai 4 
Hai 5

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π¦ΠΈΠΊΠ»Π°ΠΌΠΈ Bash: Π¦ΠΈΠΊΠ» For с ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠΎΠΌ ΠΈ ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue пропускаСт ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ синтаксис Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

for I in 1 2 3 4 5
do
Β if [condition]
Β then
Β Β Β  continue   #ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ I Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ 3
Β fi
Β statement
done

БлСдуя синтаксису, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ bash ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»:

for i in {1..5}
do
  if [[ "$i" == '4' ]]
  then
    continue
  fi
  echo "Hai $i4"
done

Π’Ρ‹Π²ΠΎΠ΄:

Hai 1
Hai 2
Hai 3
Hai 5

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 4 соотвСтствовало инструкции continue, Ρ†ΠΈΠΊΠ» Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ β€” 5.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π¦ΠΈΠΊΠ»Π°ΠΌΠΈ Bash: Π¦ΠΈΠΊΠ» For с ΠŸΠ΅Ρ€Π΅Ρ€Ρ‹Π²ΠΎΠΌ

Π¦ΠΈΠΊΠ» позволяСт ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ссли ΠΎΠ½Π° соотвСтствуСт заявлСнным условиям. ΠŸΡ€ΠΈ этом Π·Π° Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ другая инструкция. Π’ΠΎΡ‚ синтаксис:

for I in 1 2 3 4 5
  do
  if [condition]
  then
    break
  fi
  statement
done

ΠŸΡ€ΠΈ использовании этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ наш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

for city in Manila Bangkok Jakarta Kuala Lumpur
do
  if [[ "$city" == 'Jakarta' ]]; then
    break
  fi
  echo "city: $city"
done

echo 'Yes, that’s all!'

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²Ρ‹Π²ΠΎΠ΄:

city: Manila
city: Bangkok
Yes, that’s all!

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сообщаСт Ρ†ΠΈΠΊΠ»Ρƒ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° условиС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ (Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π”ΠΆΠ°ΠΊΠ°Ρ€Ρ‚Π° Π½Π°ΠΉΠ΄Π΅Π½). Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠ΄, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π²ΠΎΠ΄ тСкста β€œΠ”Π°, это всё!” (β€œYes, that’s all!”).

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ИзлоТСниС

Π¦ΠΈΠΊΠ» for ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π΄Π°Ρ‡ Π² Bash. Помимо основных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅, сущСствуСт Π΅Ρ‰Ρ‘ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² примСнСния этого Ρ†ΠΈΠΊΠ»Π°. НапримСр, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.Β 

Всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² синтаксисС. Π¦ΠΈΠΊΠ» for ΠΈΠΌΠ΅Π΅Ρ‚ довольно высокий ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния, Π½ΠΎ ΠΌΡ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ этой Π²ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π½Π°Ρ‡Π°Π»ΠΎ. Всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ β€” Π΄Π΅Π»ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π£Π΄Π°Ρ‡ΠΈ!

Ольга ΡƒΠΆΠ΅ ΠΎΠΊΠΎΠ»ΠΎ пяти Π»Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ Π² сфСрС IT. НаписаниС тСхничСских Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ инструкций β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π΅Ρ‘ Π³Π»Π°Π²Π½Ρ‹Ρ… обязанностСй. Π•Ρ‘ Ρ…ΠΎΠ±Π±ΠΈ β€” ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ интСрСсныС ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΎ соврСмСнных тСхнологиях, Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, языках программирования ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ°Ρ€ΠΊΠΎΠ²ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ» c МСньшиков Π½Π° Π‘++ ΠΈ Python с Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠΌ. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠœΠ°Ρ€ΠΊΠΎΠ²Π° состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ s1s2…sN -> d1d2…dN, Π³Π΄Π΅ si ΠΈ di — символы ΠΈΠ· Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° A, B, C. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° s1s2…sN называСтся Π»Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ, Π° d1d2…dN — ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ прСдлоТСния. Алгоритм выполняСтся Π½Π°Π΄ исходной тСкстовой строкой, состоящСй ΠΈΠ· прописных латинских Π±ΡƒΠΊΠ² A, B, C, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ всС прСдлоТСния, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. Если лСвая Ρ‡Π°ΡΡ‚ΡŒ прСдлоТСния Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку, Ρ‚ΠΎ самоС Π»Π΅Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ замСняСтся ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ этого прСдлоТСния, ΠΈ поиск вновь начинаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ прСдлоТСния. Если Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ останавливаСтся. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°: Π»ΠΈΠ±ΠΎ остановка, Π»ΠΈΠ±ΠΎ бСсконСчный Ρ†ΠΈΠΊΠ» с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ. По Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΈ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠœΠ°Ρ€ΠΊΠΎΠ²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ количСство «Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΡ…» (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°) шагов ΠΈ Π΄Π»ΠΈΠ½Ρƒ самого Ρ†ΠΈΠΊΠ»Π°. Если Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ останавливаСтся, Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° Ρ†ΠΈΠΊΠ»Π° считаСтся Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, Π° всС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ шаги

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠœΠ°Ρ€ΠΊΠΎΠ²Π° состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ

s1s2…sN -> d1d2…dN,
Π³Π΄Π΅ si ΠΈ di — символы ΠΈΠ· Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° A, B, C. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° s1s2…sN называСтся Π»Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ, Π° d1d2…dN — ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ прСдлоТСния.

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

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°: Π»ΠΈΠ±ΠΎ остановка, Π»ΠΈΠ±ΠΎ бСсконСчный Ρ†ΠΈΠΊΠ» с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ. По Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΈ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠœΠ°Ρ€ΠΊΠΎΠ²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ количСство «Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΡ…» (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π°) шагов ΠΈ Π΄Π»ΠΈΠ½Ρƒ самого Ρ†ΠΈΠΊΠ»Π°. Если Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ останавливаСтся, Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° Ρ†ΠΈΠΊΠ»Π° считаСтся Π½ΡƒΠ»Π΅Π²ΠΎΠΉ, Π° всС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ шаги — ацикличСскими.

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, вычисляСмоС Π² Ρ†ΠΈΠΊΠ»Π΅ for: ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π² частности, Ρ†ΠΈΠΊΠ»Π° for, ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π· посвящён искусству написания этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, вычисляСмых Π² Ρ†ΠΈΠΊΠ»Π΅ for. ΠœΠ΅Ρ‚ΠΎΠ΄, примСняСмый здСсь, называСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ матСматичСской ΠΈΠ½Π΄ΡƒΠΊΡ†ΠΈΠΈ.

Описанию конструкции Ρ†ΠΈΠΊΠ»Π° for ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ внимания Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… сайтах, поэтому ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ лишь основноС.

Π¦ΠΈΠΊΠ» for ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

for (<ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅>; <УсловиС>; <ΠŸΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅>;) { <ВыраТСния> }

НаписаниС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, вычисляСмых Π² Ρ†ΠΈΠΊΠ»Π΅ for, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ трСбованиям:

  • ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ;
  • ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм условиС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вычислСния;
  • экономия рСсурсов систСмы ΠΏΡ€ΠΈ вычислСнии.

Π‘Π°ΠΌΡ‹ΠΉ простой случай — Π² Π·Π°Π΄Π°Ρ‡Π΅ трСбуСтся ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму Ρ†Π΅Π»Ρ‹Ρ… ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΎΡ‚ 1 Π΄ΠΎ 100. Π’ этом случаС вычисляСмоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ΅ грСчСской Π±ΡƒΠΊΠ²ΠΎΠΉ сигма — βˆ‘) выглядит Ρ‚Π°ΠΊ:

.

Код для этого случая вычислСния:

int sum = 0; for (int i = 1; i

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для суммы ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для Π΅Ρ‘ вычислСния.

РСшСниС. Π’ Π΄Π°Π½Π½ΠΎΠΉ суммС всС числа Ρ‡Ρ‘Ρ‚Π½Ρ‹Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ число большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π° 2. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ 1) Π² ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 2; 2) шаг Ρ†ΠΈΠΊΠ»Π° for (ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅) Ρ€Π°Π²Π΅Π½ 1; 3) условиС (шаг, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вычислСния) Ρ€Π°Π²Π½ΠΎ 5. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

.

Код с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

int sum = 0; for (int i = 0; i

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для суммы ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для Π΅Ρ‘ вычислСния.

РСшСниС. Π’ Π΄Π°Π½Π½ΠΎΠΉ суммС всС числа Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ число большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π° 2. Если ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ всС числа Π½Π° 1, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ряд Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… чисСл, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 1. Если Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ числа Π½Π° 2, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ряд . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

Код с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

int sum = 0; for (int i = 0; i

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для суммы ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для Π΅Ρ‘ вычислСния.

РСшСниС. По сути трСбуСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ элСмСнта ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ числам ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, основа ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта Π² сумму Ρ€Π°Π²Π½Π° 3 ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π° 1, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for Ρ€Π°Π²Π½ΠΎ 1. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

Код с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

int sum = 0; for (int i = 3; i

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для суммы ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для Π΅Ρ‘ вычислСния.

РСшСниС. Π‘Ρ€Π°Π·Ρƒ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² этой суммС Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π·Π½Π°ΠΊΠΈ. Π—Π½Π°Ρ‡ΠΈΡ‚, Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ . Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ (21) ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 3 ΠΈ Π½Π° 7, Π½ΠΎ это Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Ρ‘Ρ‚ Π² случаС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ (25). Однако Ссли Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ 1 ΠΈΠ· 21 ΠΈ ΠΈΠ· 25, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлятся Π½Π°Ρ†Π΅Π»ΠΎ Π½Π° 4: 20 ΠΈ 24. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ это для Π΄Π²ΡƒΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… чисСл: 28 ΠΈ 32 Ρ‚Π°ΠΊΠΆΠ΅ дСлятся Π½Π° 4 ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ ряд: . Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for Ρ€Π°Π²Π½ΠΎ 1. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² сигма-ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ:

Код с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

int sum = 0; for (int i = 5; i

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ

основы, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ со списками ΠΈ range с шагом

Π¦ΠΈΠΊΠ»Ρ‹ python β€” for ΠΈ while ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка программирования, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

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

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Ρ†ΠΈΠΊΠ» for Π² Python являСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, основанным Π½Π° Ρ†ΠΈΠΊΠ»Π΅. Он ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ элСмСнтам list ΠΈ tuple, строкам, ΠΊΠ»ΡŽΡ‡Π°ΠΌ словаря ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ.

Π’ Python Ρ†ΠΈΠΊΠ» начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова for, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΠ±Ρ‰ΠΈΠΉ синтаксис for...in Π² python выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

for <пСрСмСнная> in <ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ>:
    <дСйствиС>
else:
    <дСйствиС>

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Β«ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ Β«ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ» Ρ†ΠΈΠΊΠ»Π°; Ссли Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, пСрСмСнная ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° элСмСнты. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта выполняСтся «дСйствиС».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого Ρ†ΠΈΠΊΠ»Π° for Π² Python:

>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
...     print(x)
...
C
C++
Perl
Python
>>>

Π‘Π»ΠΎΠΊ else являСтся особСнным; Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ программист, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Perl Π·Π½Π°ΠΊΠΎΠΌ с Π½ΠΈΠΌ, это нСизвСстная конструкция для программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° C ΠΈ C++. БСмантичСски ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ while.

Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρ†ΠΈΠΊΠ» Π½Π΅ Π±Ρ‹Π» «остановлСн» ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ break. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС элСмСнты ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ прСрывания Π² python β€” break

Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ†ΠΈΠΊΠ» for Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ break, Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ Π±Π΅Π· выполнСния дСйствий ΠΈΠ· else.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ„Ρ€Π°Π·Ρ‹ break Π² pyton связаны с условными ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

edibles = ["ΠΎΡ‚Π±ΠΈΠ²Π½Ρ‹Π΅", "пСльмСни", "яйца", "ΠΎΡ€Π΅Ρ…ΠΈ"]

for food in edibles:
    if food == "пСльмСни":
        print("Я нС См пСльмСни!")
        break
    print("ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС " + food)
else:
    print("Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ пСльмСнСй!")
print("Π£ΠΆΠΈΠ½ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½.")

Если ΠΌΡ‹ запустим этот ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС ΠΎΡ‚Π±ΠΈΠ²Π½Ρ‹Π΅
Я нС См пСльмСни!
Π£ΠΆΠΈΠ½ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½.

Π£Π΄Π°Π»ΠΈΠΌ «пСльмСни» ΠΈΠ· нашСго списка Π΅Π΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС ΠΎΡ‚Π±ΠΈΠ²Π½Ρ‹Π΅
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС яйца
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС ΠΎΡ€Π΅Ρ…ΠΈ
Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ пСльмСнСй!
Π£ΠΆΠΈΠ½ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пропуска python β€” continue

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ «пСльмСни» Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ просто ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΏΠΈΡ‰ΠΈ. Π’ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue, для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ малСньком скриптС python ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ continue, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ списку, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сталкиваСмся с пСльмСнями.

edibles = ["ΠΎΡ‚Π±ΠΈΠ²Π½Ρ‹Π΅", "пСльмСни", "яйца", "ΠΎΡ€Π΅Ρ…ΠΈ"]

for food in edibles:
    if food == "пСльмСни":
        print("Я нС См пСльмСни!")
        continue
    print("ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС " + food)
else:
    print("НСнавиТу пСльмСни!")
print("Π£ΠΆΠΈΠ½ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½.")

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС ΠΎΡ‚Π±ΠΈΠ²Π½Ρ‹Π΅
Я нС См пСльмСни!
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС яйца
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, вкусныС ΠΎΡ€Π΅Ρ…ΠΈ
НСнавиТу пСльмСни!
Π£ΠΆΠΈΠ½ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½.

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ спискам с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ range()

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ индСксам списка, Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для этой Π·Π°Π΄Π°Ρ‡ΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм элСмСнтам, Π½ΠΎ индСкс элСмСнта остаСтся нСдоступным. Π•ΡΡ‚ΡŒ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠ°ΠΊ ΠΊ индСксу элСмСнта, Ρ‚Π°ΠΊ ΠΈ ΠΊ самому элСмСнту. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ range() Π² сочСтании с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ‹ len():

fibonacci = [0,1,1,2,3,5,8,13,21]

for i in range(len(fibonacci)):
    print(i,fibonacci[i])

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

0 0
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ len() ΠΊ list ΠΈΠ»ΠΈ tuple, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ количСство элСмСнтов этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ спискам

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

colours = ["красный"]

for i in colours:
    if i == "красный":
        colours += ["Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ"]
    if i == "Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ":
        colours += ["Π±Π΅Π»Ρ‹ΠΉ"]
print(colours)

Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ print(colours)?

['красный', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ', 'Π±Π΅Π»Ρ‹ΠΉ']

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов, ΠΊΠ°ΠΊ сдСлано Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

colours = ["красный"]

for i in colours[:]:
    if i == "красный":
        colours += ["Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ"]
    if i == "Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ":
        colours += ["Π±Π΅Π»Ρ‹ΠΉ"]
print(colours)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

['красный', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ']

ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ список colours, Π½ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ повлияло Π½Π° Ρ†ΠΈΠΊΠ». Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π²ΠΎ выполнСния Ρ†ΠΈΠΊΠ»Π°.

Enumerate Π² python 3

Enumerate β€” встроСнная функция Python. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ программисты Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΎ Π½Π΅ΠΉ. Она позволяСт Π½Π°ΠΌ автоматичСски ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

for counter, value in enumerate(some_list):
    print(counter, value)

Ѐункция enumerate Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»Π° отсчСта, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 0), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.

my_list = ['яблоко', 'Π±Π°Π½Π°Π½', 'вишня', 'пСрсик']

for c, value in enumerate(my_list, 1):
    print(c, value)

# Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:
# 1 яблоко
# 2 Π±Π°Π½Π°Π½
# 3 вишня
# 4 пСрсик

Π¦ΠΈΠΊΠ» 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

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

для Ρ†ΠΈΠΊΠ»Π° — cppreference.com

ВыполняСт Ρ†ΠΈΠΊΠ».

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ эквивалСнт Ρ†ΠΈΠΊΠ»Π° while.

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] Бинтаксис

attr-spec-seq (начиная с C23) (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) для ( init-clause ; cond-expression ; итСрация-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ОбъяснСниС

Π²Π΅Π΄Π΅Ρ‚ сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ init ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ объявлСниСм (начиная с C99).
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ init, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, оцСниваСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ пСрвая ΠΎΡ†Π΅Π½ΠΊΠ° cond-expression ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ init, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся объявлСниСм, находится Π² области видимости всСго Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ прСдлоТСния init, всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ cond, всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ вСсь ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°. Волько auto ΠΈ register спСцификаторы класса хранСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π² этом объявлСнии.
(начиная с C99)
  • cond-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ оцСниваСтся ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°. Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.
  • Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-итСрация вычисляСтся послС Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отбрасываСтся. ПослС вычислСния выраТСния-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ init, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-условиС ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если cond-expression ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, ΠΎΠ½ΠΎ замСняСтся Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠΉ цСлочислСнной константой, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» бСсконСчным:

 для (;;) {
   printf («бСсконСчный Ρ†ΠΈΠΊΠ»!Β»);
} 
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°

Π½Π΅ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ:

 для (int n = 0; n <10; ++ n, printf ("% d \ n", n))
    ; // пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ 

Если Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любом мСстС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² любом мСстС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

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

Как ΠΈ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for устанавливаСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ°: любой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ init, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ условия ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ области дСйствия послС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°.

(начиная с C99)

attr-spec-seq - это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², примСняСмый ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ for .

(начиная с C23)

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова

для

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ выраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π°, устанавливаСт свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π±Π»ΠΎΠΊΠ°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ области дСйствия прСдлоТСния init, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C ++:

 для (int i = 0;;) {
    Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ я = 1; // ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ C, нСдопустимый C ++
    //...
} 

МоТно Π²ΠΎΠΉΡ‚ΠΈ Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ goto. ΠŸΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊΠΈΠΌ способом прСдлоТСния init ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ cond Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. (Если Π·Π°Ρ‚Π΅ΠΌ элСмСнт управлСния достигаСт ΠΊΠΎΠ½Ρ†Π° Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ выраТСния cond.)

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠŸΡ€ΠΈΠΌΠ΅Ρ€

 #include 
#include 
пСрСчислСниС {Π ΠΠ—ΠœΠ•Π  = 8};
int main (пусто)
{
    int массив [Π ΠΠ—ΠœΠ•Π ];
    для (size_t i = 0; i 

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄:

 Массив заполнСн!
1 0 1 1 1 1 0 0 

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] Бсылки

  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C17 (ISO / IEC 9899: 2018):
  • 6.8.5.3 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for (стр: 110)
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C11 (ISO / IEC 9899: 2011):
  • 6.8.5.3 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for (стр: 151)
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C99 (ISO / IEC 9899: 1999):
  • 6.8.5.3 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for (стр: 136)
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C89 / C90 (ISO / IEC 9899: 1990):
  • 3.6.5.3 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

для инструкции (C ++) | Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Microsoft

  • 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

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

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

Бинтаксис

для ( init-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ; cond-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ; цикличСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ )
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ЗамСчания

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

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

для элСмСнтов ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°

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

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

  #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
  

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

  #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 ΠΈΠ»ΠΈ goto Π² вСдомости .

Π₯отя Ρ‚Ρ€ΠΈ поля ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, тСстирования Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈ увСличСния, ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ этим использованиСм.НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ числа ΠΎΡ‚ 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 - DYclassroom

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ Ρ†ΠΈΠΊΠ»Π΅ for Π½Π° языкС программирования C.

Π¦ΠΈΠΊΠ» For Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ†ΠΈΠΊΠ»Ρƒ while ΠΈ do-while.ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» for Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ части ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, условия ΠΈ обновлСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС.

Бинтаксис Ρ†ΠΈΠΊΠ»Π° for ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

  для (инициализация; условиС; ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅) {
  //ΠΊΠΎΠ΄...
}
  

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово for для создания Ρ†ΠΈΠΊΠ»Π° for. Π¦ΠΈΠΊΠ» for состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… частСй, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: инициализация , условиС , ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π΅Π»ΠΎ .

Π§Π°ΡΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for выполняСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ части провСряСтся условиС Ρ‡Π°ΡΡ‚ΡŒ. Если условиС удовлСтворяСтся, Ρ‚ΠΎ выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for.

ПослС выполнСния Ρ‚Π΅Π»Π° выполняСтся ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ части.

ΠŸΠΎΡ‚ΠΎΠΌ пСрСпровСряСм состояниС послС обновлСния. Если условиС всС Π΅Ρ‰Π΅ выполняСтся, Ρ‚Π΅Π»ΠΎ выполняСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ ΠΎΡ‚ 1 Π΄ΠΎ 10 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for.

  #include 
int main (пусто)
{
  //ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ
  int i;
  
  //пСтля
  для (i = 1; i  

Π’Ρ‹Ρ…ΠΎΠ΄

  1
2
3
4
5
6
7
8
9
10
ΠšΠΎΠ½Π΅Ρ† ΠΊΠΎΠ΄Π°
  

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1 Π² части initialise Ρ†ΠΈΠΊΠ»Π° for.

ПослС установки i = 1 ΠΌΡ‹ провСряСм условиС i, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ i мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 10. Π’ этом случаС это ΠΏΡ€Π°Π²Π΄Π°, поэтому ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ printf заявлСниС.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ части обновлСния Ρ†ΠΈΠΊΠ»Π° for, Π³Π΄Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i Π½Π° 1 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° приращСния.

Π—Π°Ρ‚Π΅ΠΌ провСряСм условиС i. Если это всС Π΅Ρ‰Π΅ Π²Π΅Ρ€Π½ΠΎ, ΠΌΡ‹ выполняСм Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» for Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for, создав Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ».

Бинтаксис Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for.

  // 1-ΠΉ Ρ†ΠΈΠΊΠ» for
for (initialise_1; condition_1; update_1) {
  // 2-ΠΉ Ρ†ΠΈΠΊΠ» for
  for (инициализация_2; условиС_2; ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅_2) {
    //ΠΊΠΎΠ΄...
  }
}
  

Π’ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°Ρ… for сначала выполняСтся initialise_1 , Π·Π°Ρ‚Π΅ΠΌ провСряСтся условиС condition_1 . Если условиС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ‚Π΅Π»ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° for 1 ΠΌΡ‹ сначала выполняСм initialise_2 , Π·Π°Ρ‚Π΅ΠΌ провСряСм условиС condition_2 ΠΈ, Ссли условиС удовлСтворяСтся, выполняСм Ρ‚Π΅Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for.

ПослС выполнСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΌΡ‹ запускаСм update_2 , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ провСряСм condition_2 .Если условиС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΌΡ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ запускаСм Ρ†ΠΈΠΊΠ» for-2, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π±Π»ΠΎΠΊ-схСма ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for.


Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ шаблон, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for.

  Π’Ρ‹ΠΊΡ€ΠΎΠΉΠΊΠ°
1 2 3
4 5 6
7 8 9
  

Код

  #include 
int main (пусто)
{
  //ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ
  int r, c, count;
  
  //пСтля
  для (r = 1, count = 1; r  

Π’Ρ‹Ρ…ΠΎΠ΄

  1 2 3
4 5 6
7 8 9
ΠšΠΎΠ½Π΅Ρ† ΠΊΠΎΠ΄Π°
  

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ 3 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: r , c ΠΈ count , Π³Π΄Π΅ r ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ строку, c ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ столбСц, Π° count - количСство чисСл ΠΎΡ‚ 1 Π΄ΠΎ 9.

Глядя Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ шаблон, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 3 строки ΠΈ 3 столбца, ΠΈ ΠΌΡ‹ считаСм ΠΎΡ‚ 1 Π΄ΠΎ 9. Π˜Ρ‚Π°ΠΊ, r Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 1 ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° 3. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ c Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 1 ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° 3. И отсчСт Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с 1 ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° 9.

Π˜Ρ‚Π°ΠΊ, Π² части initialise_1 ΠΌΡ‹ устанавливаСм r = 1 ΠΈ count = 1 .

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ провСряСм condition_1 , Ρ‚.Π΅. r, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ 1-Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° for, ΠΏΠΎΠΊΠ° r мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 3 i.э., 3 Ρ€Π°Π·Π°.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Ρ‚Π΅Π»ΠΎ 1-Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° for. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» for.

Π˜Ρ‚Π°ΠΊ, Π² части initalise_2 ΠΌΡ‹ устанавливаСм c = 1 , Π° Π·Π°Ρ‚Π΅ΠΌ провСряСм условиС condition_2 , Ρ‚. Π•. c, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, мСньшС Π»ΠΈ c ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 3. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ запустим 2-ΠΉ Ρ†ΠΈΠΊΠ» for 3. Ρ€Π°Π·.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° 2-Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΌΡ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ count .

Π—Π°Ρ‚Π΅ΠΌ выполняСм update_2 i.Π΅., увСличивая Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ c Π½Π° 1 ΠΈ считая Π½Π° 1.

Когда condition_2 Π½Π΅ удовлСтворяСтся, ΠΌΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΈ выполняСм update_1 , Ρ‚.Π΅. ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ r Π½Π° 1 ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ провСряСм condition_1 .

ΠœΡ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° condition_1 Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ выполняСтся.

Bash For Loop | Linuxize

Π¦ΠΈΠΊΠ»Ρ‹ - ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ языков программирования. Π¦ΠΈΠΊΠ»Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ снова ΠΈ снова, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнуто ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ условиС.

Π’ языках сцСнариСв, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Bash, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π΄Π°Ρ‡.

Π’ сцСнариях Bash Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ основных конструкции Ρ†ΠΈΠΊΠ»Π°: для Ρ†ΠΈΠΊΠ»Π° , для Ρ†ΠΈΠΊΠ»Π° , ΠΈ ΠΎΡ‚ Π΄ΠΎ ΠΏΠ΅Ρ‚Π»ΠΈ .

Π’ этом руководствС ΠΌΡ‹ рассмотрим основы Ρ†ΠΈΠΊΠ»ΠΎΠ² for Π² Bash. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue для измСнСния ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π°.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Bash

для Ρ†ΠΈΠΊΠ»Π° #

Π¦ΠΈΠΊΠ» для выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ списку элСмСнтов ΠΈ выполняСт Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄.

Bash для Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

  для элСмСнта Π² [БПИБОК]
Π΄Π΅Π»Π°Ρ‚ΡŒ
  [ΠšΠžΠœΠΠΠ”Π«]
сдСлано
  

Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сСриСй строк, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ чисСл, Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, массивом ΠΈ Ρ‚. Π”.

Π¦ΠΈΠΊΠ» ΠΏΠΎ строкам #

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² спискС строк, Π° элСмСнт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт:

  для элСмСнта Π² Π²ΠΎΠ΄ΠΎΡ€ΠΎΠ΄Π΅, Π³Π΅Π»ΠΈΠΈ, Π»ΠΈΡ‚ΠΈΠΈ, Π±Π΅Ρ€ΠΈΠ»Π»ΠΈΠΈ.
Π΄Π΅Π»Π°Ρ‚ΡŒ
  echo "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: $ element"
сдСлано
  

Π¦ΠΈΠΊΠ» даст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π²ΠΎΠ΄ΠΎΡ€ΠΎΠ΄
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π³Π΅Π»ΠΈΠΉ
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π›ΠΈΡ‚ΠΈΠΉ
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π‘Π΅Ρ€ΠΈΠ»Π»ΠΈΠΉ
  

Π¦ΠΈΠΊΠ» ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ чисСл #

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΈΠ»ΠΈ символов, опрСдСляя Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ всСм числам ΠΎΡ‚ 0 Π΄ΠΎ 3:

  для i в {0..3}
Π΄Π΅Π»Π°Ρ‚ΡŒ
  echo "Число: $ i"
сдСлано
  
  НомСр: 0
НомСр 1
НомСр 2
Число: 3
  

Начиная с Bash 4, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ использовании Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ². Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π° 5:

  для i в {0..20..5}
Π΄Π΅Π»Π°Ρ‚ΡŒ
  echo "Число: $ i"
сдСлано
  
  НомСр: 0
Число: 5
НомСр: 10
НомСр: 15
НомСр: 20
  

Π¦ΠΈΠΊΠ» ΠΏΠΎ элСмСнтам массива #

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» для для ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ массиву элСмСнтов.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ опрСдСляСм массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ BOOKS ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива.

  BOOKS = ('Π’ поисках ΡƒΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ' Π”ΠΎΠ½ ΠšΠΈΡ…ΠΎΡ‚ 'Улисс' Π’Π΅Π»ΠΈΠΊΠΈΠΉ Гэтсби ')

для ΠΊΠ½ΠΈΠ³ΠΈ Π² "$ {BOOKS [@]}"; Π΄Π΅Π»Π°Ρ‚ΡŒ
  echo "Книга: $ книга"
сдСлано
  
  Книга: Π’ поисках ΡƒΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
Книга: Π”ΠΎΠ½ ΠšΠΈΡ…ΠΎΡ‚
Книга: Улисс
Книга: Π’Π΅Π»ΠΈΠΊΠΈΠΉ Гэтсби
  

Bash Π² стилС C для Ρ†ΠΈΠΊΠ»Π° #

Бинтаксис Ρ†ΠΈΠΊΠ»Π° для Π² стилС C ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

  for ((INITIALIZATION; TEST; STEP))
Π΄Π΅Π»Π°Ρ‚ΡŒ
  [ΠšΠžΠœΠΠΠ”Π«]
сдСлано
  

Π§Π°ΡΡ‚ΡŒ INITIALIZATION выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС Ρ†ΠΈΠΊΠ»Π°.Π—Π°Ρ‚Π΅ΠΌ оцСниваСтся Π΄Π΅Ρ‚Π°Π»ΡŒ TEST . Если ΠΎΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎ, Ρ†ΠΈΠΊΠ» прСкращаСтся. Если TEST истинно, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° для Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π° Ρ‡Π°ΡΡ‚ΡŒ STEP обновляСтся.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° Ρ†ΠΈΠΊΠ» начинаСтся с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ i = 0 ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ провСряСтся, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π»ΠΈ i ≀ 10 . Если это ΠΏΡ€Π°Π²Π΄Π°, ΠΎΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i ΠΈ [ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ] i Π½Π° 1 ( i ++ ), Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

  для ((i = 0; i <= 1000; i ++)); Π΄Π΅Π»Π°Ρ‚ΡŒ
  echo "Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: $ i"
сдСлано
  

Π¦ΠΈΠΊΠ» повторится 1001 Ρ€Π°Π· ΠΈ выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 0
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 1
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 2
...
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 998
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 999
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ: 1000
  

break ΠΈ continue ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ #

ΠŸΠ΅Ρ€Π΅Ρ€Ρ‹Π² ΠΈ continue ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для управлСния Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ†ΠΈΠΊΠ»Π° for.

break ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β„–

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π·Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ условия.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if для прСкращСния выполнСния Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ повторяСмый элСмСнт становится Ρ€Π°Π²Π½Ρ‹ΠΌ Β«LithiumΒ».

  для элСмСнта Π² Π²ΠΎΠ΄ΠΎΡ€ΠΎΠ΄Π΅, Π³Π΅Π»ΠΈΠΈ, Π»ΠΈΡ‚ΠΈΠΈ, Π±Π΅Ρ€ΠΈΠ»Π»ΠΈΠΈ; Π΄Π΅Π»Π°Ρ‚ΡŒ
  Ссли [["$ element" == 'Π›ΠΈΡ‚ΠΈΠΉ']]; Ρ‚ΠΎΠ³Π΄Π°
    ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
  Ρ„ΠΈ
  echo "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: $ element"
сдСлано

echo "ВсС Π³ΠΎΡ‚ΠΎΠ²ΠΎ!"
  
  Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π²ΠΎΠ΄ΠΎΡ€ΠΎΠ΄
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚: Π³Π΅Π»ΠΈΠΉ
ВсС сдСлано!
  

continue ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β„–

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл. Когда Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ повторяСмый элСмСнт Ρ€Π°Π²Π΅Π½ Β«2Β», ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ выполнСния ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ:

  для i Π² {1..5}; Π΄Π΅Π»Π°Ρ‚ΡŒ
  Ссли [["$ i" == '2']]; Ρ‚ΠΎΠ³Π΄Π°
    ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
  Ρ„ΠΈ
  echo "Число: $ i"
сдСлано
  
  НомСр: 1
Число: 3
Число: 4
Число: 5
  

Bash

для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π° #

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° #

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π² Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π°Ρ…, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€ΠΎΠ±Π΅Π» Π½Π° ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅:

  для Ρ„Π°ΠΉΠ»Π° Π² * \ *; Π΄Π΅Π»Π°Ρ‚ΡŒ
  mv "$ file" "$ {file // / _}"
сдСлано
  

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ построчно:

  • Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС создаСтся Ρ†ΠΈΠΊΠ» для ΠΈ выполняСтся итСрация ΠΏΠΎ списку всСх Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π² ΠΈΠΌΠ΅Π½ΠΈ.Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ * \ * создаСт список.
  • Вторая строка относится ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту списка ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π² Π½ΠΎΠ²Ρ‹ΠΉ, замСняя ΠΏΡ€ΠΎΠ±Π΅Π» Π·Π½Π°ΠΊΠΎΠΌ подчСркивания ( _ ). Π§Π°ΡΡ‚ΡŒ $ {file // / _} ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Π·Π°ΠΌΠ΅Π½Ρ‹ шаблона Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ строкой.
  • Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† сСгмСнта Ρ†ΠΈΠΊΠ»Π°.

ИзмСнСниС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° #

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Bash for для пСрСимСнования всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡΡΡŒ Π½Π°.jpeg Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с .jpeg Π½Π° .jpg.

  для Ρ„Π°ΠΉΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ * .jpeg; Π΄Π΅Π»Π°Ρ‚ΡŒ
    mv - "$ file" "$ {file% .jpeg} .jpg"
сдСлано
  

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄ построчно:

  • ΠŸΠ΅Ρ€Π²Π°Ρ строка создаСт Ρ†ΠΈΠΊΠ» для ΠΈ выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ списку всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° Β«.jpegΒ».
  • Вторая строка относится ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту списка ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π² Π½ΠΎΠ²Ρ‹ΠΉ, замСняя Β«.jpegΒ» Π½Π° Β«.jpgΒ». $ {file% .jpeg} , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» β€˜.jpeg ’из ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° с использованиСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
  • done ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† сСгмСнта Ρ†ΠΈΠΊΠ»Π°.

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

Π¦ΠΈΠΊΠ» Bash для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π¦ΠΈΠΊΠ»ΠΎΠ² C ++: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ познакомимся с трСмя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² C ++, рассмотрим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈ коснСмся сцСнариСв, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C ++.

КакиС Ρ†ΠΈΠΊΠ»Ρ‹ доступны Π² C ++?

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

Ρ†ΠΈΠΊΠ» For-Loop

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

Цикл "Пока"

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

Π¦ΠΈΠΊΠ» Do-While

Бинтаксис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ do-while, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° синтаксис Π² Ρ†ΠΈΠΊΠ»Π°Ρ… while, с Ρ‚ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ»Ρ‹ do-while ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ условиС Π² ΠΊΠΎΠ½Ρ†Π΅ структуры Ρ†ΠΈΠΊΠ»Π°.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» do-while Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠ΅ условиС Π½Π΅ выполняСтся.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ C ++

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ описанныС Π²Ρ‹ΡˆΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ….

Ρ†ΠΈΠΊΠ» For-Loop

Π’Ρ€ΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π° for состоят ΠΈΠ· ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ для выполнСния Π±Π»ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ i - это ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ - пСрСмСнная, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ (ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ) с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°. Для запуска Ρ†ΠΈΠΊΠ»Π° for условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, - это i <= n, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ - это i ++, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° выполняСтся Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Ρ†ΠΈΠΊΠ»Π°, i увСличиваСтся Π½Π° 1. (ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ i + 1 .) Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ объявляСм ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ i ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for, Π½ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΡƒΠ»Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° for:

Π‘Π°ΠΌ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ просто Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈ слово Β«Count:Β», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°. Π¦ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° i достигаСт 6, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ i <= 5 оказываСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

Цикл "Пока"

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ†ΠΈΠΊΠ»Π° for, Ρ†ΠΈΠΊΠ» while содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова while: условиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true ΠΈΠ»ΠΈ false ΠΈ опрСдСляСт, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ†ΠΈΠΊΠ» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ условиС, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ†ΠΈΠΊΠ»Π΅ for, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π±Ρ‹Π» Ρ€Π°Π²Π΅Π½ 5 ΠΈΠ»ΠΈ мСньшС для выполнСния Ρ†ΠΈΠΊΠ»Π°.Π’ этом случаС ΠΌΡ‹ запишСм это условиС ΠΊΠ°ΠΊ while (i <6).

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² скобках ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ увСличСния / ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ, ΠΎΠ½ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ Π²Π°ΠΆΠ½Ρ‹ Π² Ρ†ΠΈΠΊΠ»Π΅ while, ΠΊΠ°ΠΊ ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ for. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ i Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° while, ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ / ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π°:

#include
с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄.Когда наш Ρ†ΠΈΠΊΠ» пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? ΠžΡ‚Π²Π΅Ρ‚: Π½ΠΈΠΊΠΎΠ³Π΄Π°! Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ i с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ, Π° условиС ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° i <6. Π­Ρ‚ΠΎ создаСт бСсконСчный Ρ†ΠΈΠΊΠ». БСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ наш ΠΊΠΎΠ΄ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° while, поэтому ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΡŒΡ‚Π΅ΡΡŒ ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ, которая Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ заставит условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ false ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ».

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ Ρ†ΠΈΠΊΠ» for? Один ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² - Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ 0, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ вмСсто ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ i всСгда Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом:

Π­Ρ‚ΠΎ даст Π½Π°ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ Ρ†ΠΈΠΊΠ» for, Π½ΠΎ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (начиная с 5 ΠΈ заканчивая 0).

Π¦ΠΈΠΊΠ» Do-While

НаконСц, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ†ΠΈΠΊΠ» do-while. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎ названию, этот Ρ†ΠΈΠΊΠ» ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ†ΠΈΠΊΠ» while, Π½ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ: условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ оцСниваСтся послС Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π° Π½Π΅ Π΄ΠΎ Π½Π΅Π³ΠΎ.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ подсчСта, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚:

Π­Ρ‚ΠΎ даст Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ наш ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» while, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ случая. Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ нашС условиС Π½Π° while (i <0), нашим Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Count: 0.Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ компилятор ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС выполнСния нашСго ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Если условиС Π»ΠΎΠΆΠ½ΠΎ, выполняСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π°. Если это ΠΏΡ€Π°Π²Π΄Π°, ΠΎΠ½ снова ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ do.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ рассмотрим, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ†ΠΈΠΊΠ»Ρ‹, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ Π² C ++

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈ счСтчик Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ Ρ†ΠΈΠΊΠ»Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ числа ΠΊ постоянно растущСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ суммы с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ, Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ:

Наша сумма Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 10 - ΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΈΠ²Π½ΡƒΡŽ сумму ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ i, слоТСнного вмСстС, послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° for.

Π’ΠΎ всСх этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС Ρ†ΠΈΠΊΠ»Π°. ВсС, Ρ‡Ρ‚ΠΎ сохраняСтся послС запуска Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, называСтся ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом, поэтому Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² - это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ потрСбуСтся Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт.

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² C ++ - это ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.НапримСр, Ссли Π²Ρ‹ ΠΆΠ΄Π΅Ρ‚Π΅ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ сСтСвых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° это условиС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

Когда слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C ++

Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, C ++ содСрТит Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ map ΠΈ reduce, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ массивам, выполняя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Π’ случаях, ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· массива ΠΈΠ»ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ Ρ†ΠΈΠΊΠ»Π°ΠΌ.Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибки.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ случай, ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, - это ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ доступная функция Π±ΠΎΠ»Π΅Π΅ высокого уровня. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ std :: getline, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ строку, собирая Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ слово Π·Π° словом ΠΈΠ»ΠΈ символ Π·Π° символом.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈ бСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹ Π² C ++

НаконСц, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² C ++. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ссылки Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ задавались вопросом, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅.Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ - это Ρ†ΠΈΠΊΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ²; ΠΎΠ½ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹, Π½ΠΎ ΠΈ довольно распространСны.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»:

Π₯отя это Π½Π΅ практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ». ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈ посмотритС, ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅!

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ. НапримСр, Ρ†ΠΈΠΊΠ» do-while ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° for, Π° Ρ†ΠΈΠΊΠ» for ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ†ΠΈΠΊΠ»Π° while. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ бСспорядочными, поэтому, Ссли Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΏΡ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ чистыми.

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

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

НаконСц, ΠΏΡ€ΠΈ использовании Π΄Π²ΡƒΡ… индСксов с условиями ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ индСкса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди ΠΌΠΎΠ³Π»ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄.Код становится Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈ использовании Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π΄Π°Π»Π° Π²Π°ΠΌ Ρ†Π΅Π½Π½ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ C ++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ†ΠΈΠΊΠ»Ρ‹. Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π±Π°Π·Π° программирования, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ‚ΠΎΡ‡ΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ C ++ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ C ++ Nanodegree, ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ экспСртами. Π’Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ успСха Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Ρ‚Ρ€ΡƒΠ΄Π°.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ Ρ†ΠΈΠΊΠ»Π°ΠΌ Π² R - ИспользованиС ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ вСкторизация?

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

Π˜Ρ‚Π°ΠΊ, Π²Π΅ΠΊΡ‚ΠΎΡ€ - это элСмСнтарная структура Π΄Π°Π½Π½Ρ‹Ρ… Π² R ΠΈ, согласно Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ руководству R.

Π˜Ρ‚Π°ΠΊ, Π½Π°Π±ΠΎΡ€ чисСл - это числовой Π²Π΅ΠΊΡ‚ΠΎΡ€.

Если Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ (ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹), Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π½Ρ‹Π΅ инструкции R. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² R ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° рассматриваСтся ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

МногиС ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… конструкций Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСявными с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π― Π³ΠΎΠ²ΠΎΡ€ΡŽ «нСявныС», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚. На Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ вСкторизованная Ρ„ΠΎΡ€ΠΌΠ° транслируСтся Π² ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π° языкС Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ° Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈ скомпилирована (Fortran, C ΠΈΠ»ΠΈ C ++).

Они скрыты ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстрСС, Ρ‡Π΅ΠΌ эквивалСнтный явный ΠΊΠΎΠ΄ R, Π½ΠΎ Ссли Π²Ρ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ R с использованиСм ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих языков, это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ для вас.

Π‘Π°ΠΌΡ‹ΠΉ простой случай, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, - это слоТСниС Π΄Π²ΡƒΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² v1 ΠΈ v2 Π² Π²Π΅ΠΊΡ‚ΠΎΡ€ v3 , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ поэлСмСнтно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for :

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6InYxIDwtIGMoMiwgMywgNSkgXG52MiA8LSBjKDQsIDUsIDYpXG52MyA8LSBjKDAsIDAsIDApXG5uIDwtIDMiLCJzYW1wbGUiOiJmb3IgKGkgaW4gMTpuKSB7IFxuXHR2M1tpXSA8LXYxW2ldICsgdjJbaV0gXG59XG52MyJ9

Или Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Ρ€ΠΎΠ΄Π½ΡƒΡŽΒ» Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6InYxIDwtIGMoMiwgMywgNSkgXG52MiA8LSBjKDQsIDUsIDYpIiwic2FtcjGRMglIjo

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, , Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Β«Ρ€ΠΎΠ΄Π½ΠΎΠΉΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ R ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ всС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠ°ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Аналогично для Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A, ΠΈ B , вмСсто добавлСния элСмСнтов A [i, j] ΠΈ B [i, j] Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Π΄Π²ΡƒΡ… индСксы i ΠΈ j , Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ R ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6IkEgPSBtYXRyaXgoIGMoMSwgMiwgMywgNCwgNSwgNiksIG5yb3c9MywgbmNvbD0yKSBcbkIgPSBtYXRyaXgoIGMoMiwgNCwgMywgMSwgNSwgNyksIG5yb3c9MywgbmNvbD0yKSAiLCJzYW1wbGUiOiJDPSBBICsgQlxuQyJ9

И это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто!

ВСкторизация Π² R объяснСниС

ΠŸΠΎΡ‡Π΅ΠΌΡƒ вСкторизация Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстрСС, Ссли количСство элСмСнтарных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ?

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ R Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Β» эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΠ· контСкста, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ свои ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅ΠΌΡƒ придСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Ρ‚Π°ΠΊΠΈΠΌΠΈ опрСдСлСниями ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ просто повторяСтС Π΅Π΅.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ всС опрСдСлСния ΠΈ объявлСния Π²ΠΎ врСмя компиляции ΠΏΠΎ всСму ΠΊΠΎΠ΄Ρƒ; послСдний пСрСводится Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ R написаны Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этих языков Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня, ΠΎΠ½ΠΈ стали Π±ΠΎΠ»Π΅Π΅ эффСктивными.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ C ΠΈΠ»ΠΈ C ++, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

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

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

НаконСц, Ρ€Π°Π±ΠΎΡ‚Π° с собствСнным Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ эффСктивныС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ BLAS ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… инструкций R ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эти эффСктивныС числовыС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сообщСниС Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ всСх выполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ копирования.

Но Ρ…Π²Π°Ρ‚ΠΈΡ‚ отступлСний, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΈ популярныС Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ R для Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² R

Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся ΠΊ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ «растущиС Π΄Π°Π½Π½Ρ‹Π΅Β», ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ нСэффСктивному способу «обновлСния» Ρ„Ρ€Π΅ΠΉΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ создаСтС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ m x n с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ (m, rnorm (n)) с m = 10 Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²-столбцов ΠΏΠΎ n = 10 элСмСнтов ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rnorm (n) , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт случайныС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ числа.

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚Π΅ Π΅Π³ΠΎ Π² ΠΊΠ°Π΄Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, 10 наблюдСний для 10 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…) ΠΈ выполняСтС Π°Π»Π³Π΅Π±Ρ€Π°ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для : Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΈΠ½ΡƒΡΠΎΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ функция ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π΄Π²ΡƒΠΌ индСксам.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ искусствСнСн, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сигнала ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ случайному ΡˆΡƒΠΌΡƒ:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoaXMgaXMgYSBiYWQgbG9vcCB3aXRoICdncm93aW5nJyBkYXRhXG5zZXQuc2VlZCg0Milcbm09MTBcbm49MTBcblxuIyBDcmVhdGUgbWF0cml4IG9mIG5vcm1hbCByYW5kb20gbnVtYmVyc1xubXltYXQgPC0gcmVwbGljYXRlKG0sIHJub3JtKG4pKVxuXG4jIFRyYW5zZm9ybSBpbnRvIGRhdGEgZnJhbWVcbm15ZGZyYW1lIDwtIGRhdGEuZnJhbWUobXltYXQpXG5cbmZvciAoaSBpbiAxOm0pIHtcbiAgZm9yIChqIGluIDE6bikge1xuICAgIG15ZGZyYW1lW2ksal08LW15ZGZyYW1lW2ksal0gKyAxMCpzaW4oMC43NSpwaSlcbiAgICBwcmludChteWRmcmFtZSlcbiAgfVxufSJ9

Π—Π΄Π΅ΡΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ выглядит Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJzZXQuc2VlZCg0Milcbm09MTBcbm49MTBcbm15bWF0IDwtIHJlcGxpY2F0ZShtLCBybm9ybShuKSkgXG5teWRmcmFtZSA8LSBkYXRhLmZyYW1lKG15bWF0KVxubXlkZnJhbWUgPC0gbXlkZnJhbWUgKyAxMCpzaW4oMC43NSpwaSlcbm15ZGZyYW1lIn0 =

Π­Ρ‚ΠΎ выглядит ΠΏΡ€ΠΎΡ‰Π΅: послСдняя строка замСняСт Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС set.seed () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния для Π΄Π²ΡƒΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмных ΠΊΠΎΠΌΠ°Π½Π΄ R, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ system.time () , Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘ΠΎΠ²Π΅Ρ‚ : просто помСститС ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, ΠΌΠ΅ΠΆΠ΄Ρƒ скобками Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ system.time () .

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6InNldC5zZWVkKDQyKVxubT0xMFxubj0xMFxubXltYXQ8LXJlcGxpY2F0ZShtLCBybm9ybShuKSkgXG5teWRmcmFtZT1kYXRhLmZyYW1lKG15bWF0KVxubXlkZnJhbWU8LW15ZGZyYW1lICsgMTAqc2luKDAuNzUqcGkpIiwic2FtcGxlIjoiIyBJbnNlcnQgYHN5c3RlbS50aW1lKClgIHRvIG1lYXN1cmUgbG9vcCBleGVjdXRpb25cbiAgZm9yIChpIGluIDE6bSkge1xuICAgIGZvciAoaiBpbiAxOm4pIHtcbiAgICAgIG15ZGZyYW1lW2ksal0gPC0gbXlkZnJhbWVbaSxqXSArIDEwKnNpbigwLjc1KnBpKVxuICAgIh2cbiAgfVxuXG4jIEFkZCBgc3lzdGVtLnRpbWUoKWAgdG8gbWVhc3VyZSB2ZWN0b3JpemVkIGV4ZWN1dGlvblxuICBteWRmcmFtZTwtbXlkZnJhbWUgKyAxMCpzaW4oMC43NSpwaSkgICIsInNvbHV0aW9uIjoiIyBJbnNlcnQgYHN5c3RlbS50aW1lKClgIHRvIG1lYXN1cmUgbG9vcCBleGVjdXRpb25cbnN5c3RlbS50aW1lKFxuICBmb3IgKGkgaW4gMTptKSB7XG4gICAgZm9yIChqIGluIDE6bikge1xuICAgICAgbXlkZnJhbWVbaSxqXSA8LSBteWRmcmFtZVtpLGpdICsgMTAqc2luKDAuNzUqcGkpXG4gICAgfVxuICB9XG4pXG5cbiMgQWRkIGBzeXN0ZW0udGltZSgpYCB0byBtZWFzdXJlIHZlY3Rvcml6ZWQgZXhlY3V0aW9uXG5zeXN0ZW0udGltZShcbiAgbXlkZnJhbWUgPC0gbXlkZnJhbWUgKyAxMCpzaW4oMC43NSpwaSkgIFxuKSIsInNjdC I6InRlc3Rfb3V0cHV0X2NvbnRhaW5zKGdldF9zb2x1dGlvbl9jb2RlKCksIGluY29ycmVjdF9tc2cgPSBcIkRpZCB5b3UgYWRkIGBzeXN0ZW0udGltZSgpYCB0byB0aGUgY29kZT9cIilcbnRlc3Rfb3V0cHV0X2NvbnRhaW5zKGdldF9zb2x1dGlvbl9jb2RlKCksIGluY29ycmVjdF9tc2cgPSBcIkRpZCB5b3UgYWRkIGBzeXN0ZW0udGltZSgpYCB0byB0aGUgY29kZT9cIilcbnN1Y2Nlc3NfbXNnKFwiRmFudGFzdGljISBMb29rIGF0IHRoZSByZXN1bHRzLiBJcyB0aGUgZXhlY3V0aW9uIG9mIHRoZSB2ZWN0b3JpemVkIHZlcnNpb24gcmVhbGx5IGZhc3Rlcj9cIikifQ ==

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° Π²Ρ‹ выполняСтС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ m ΠΈ n , созданию ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Π½Π°Ρ‡Π°Π»Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚Π΅ для Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Β«ΠΎΠ΄Π½ΠΈΠΌ- Π»Π°ΠΉΠ½Π΅Ρ€ Β»Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсии с двумя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ обращСниями ΠΊ систСмС .врСмя () .

Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈ минимальном Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ m = n = 10 вСкторизованная вСрсия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 7 Ρ€Π°Π· быстрСС, хотя для Ρ‚Π°ΠΊΠΈΡ… Π½ΠΈΠ·ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ это Π΅Π΄Π²Π° Π»ΠΈ Π²Π°ΠΆΠ½ΠΎ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Различия становятся Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ (Π² чСловСчСском ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅), Ссли Π²Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ m = n = 100 , Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ 1000 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» for Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ зависаниС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков сСкунд, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ вСкторизованная Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ°. .

Для m = n = 10000 Ρ†ΠΈΠΊΠ» for зависаСт Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ вСкторизация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 2.54 сСк. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊ этим ΠΌΠ΅Ρ€Π°ΠΌ слСдуСт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ остороТно ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ оборудования ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ вашСго Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ° нСсколькими дСсятками ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Π² вашСм ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ нСсколькими прилоТСниями, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅; Π½ΠΎ эти ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ различия.

ЧСстно говоря, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ m ΠΈ n Ρ‚Π°ΠΊΠΆΠ΅ сильно влияСт Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, размСстив Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ систСму .time () Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π’Π°ΠΌ прСдлагаСтся ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ с m ΠΈ n , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ измСняСтся врСмя выполнСния, ΠΏΡƒΡ‚Π΅ΠΌ построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° m x n . Π­Ρ‚ΠΎ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ созданных ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ количСствСнно опрСдСляСт количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° nset -ed for .

Π˜Ρ‚Π°ΠΊ, это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.Но Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π’ R News, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½Π΅ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° R Π½Π° страницС 46, Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ эффСктивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для вычислСния сумм ΠΈ срСдних для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² массивах ΠΈΠ»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: rowSums () , colSums () , rowMeans () ΠΈ colMeans () .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½Π΅ Ρ‚Π°ΠΊΠΆΠ΅ упоминаСтся, Ρ‡Ρ‚ΠΎ «… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· сСмСйства« apply Β», Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ [s, l, m, t] apply, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для примСнСния Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ элСмСнтам / Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ «примСнСния» ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ синтаксис для ΠΈΠ½ΠΎΠ³Π΄Π° довольно слоТных Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³Ρ‡Π΅ читаСтся ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ ΠΏΠ»ΠΎΡ…ΠΎ написанныС Ρ†ΠΈΠΊΠ»Ρ‹ Β».

БСмСйство

apply : Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скрытыС ΠΏΠ΅Ρ‚Π»ΠΈ?

ΠžΡ‡Π΅Π½ΡŒ Π±ΠΎΠ³Π°Ρ‚ΠΎΠ΅ ΠΈ ΠΌΠΎΡ‰Π½ΠΎΠ΅ сСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ apply состоит ΠΈΠ· собствСнно Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Если Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ содСрТат ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ‚Π»ΠΈ, эта функция становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, Ссли Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотритС ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚.

ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ, скорСС, сСмСйство ΠΊΠΎΠΌΠ°Π½Π΄, относится ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ R.Он Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ рядом Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ( [s, l, m, r, t, v] ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ) для ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ манипулирования срСзами Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ»ΠΈ массивов, позволяя ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ data ΠΈ избСгая явного использования конструкций Ρ†ΠΈΠΊΠ»Π°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ массив ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ , поэтому ΠΎΠ½ΠΈ относятся ΠΊ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°ΠΌΒ» (ΠΊΠ°ΠΊ Π½Π° ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ R-страницС Π₯эдли Π£ΠΈΠΊΡ…Π΅ΠΌΠ°.

ВызываСмая функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ агрСгирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простым срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ прСобразования ΠΈΠ»ΠΈ подустановки.

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

БСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: apply () , sapply () , lapply () , mapply () , rapply () , tapply () , vapply () .

Но ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π§Ρ‚ΠΎ ΠΆ, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ такая ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, ΠΊΠ°ΠΊ plyr , ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСмСйства; Π₯отя Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΈΡ… всСх Π±Π΅Π· обращСния ΠΊ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ, всС ΠΆΠ΅ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ основу для Π±ΠΎΠ»Π΅Π΅ слоТных ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ:

  1. ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ()

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ строкам (индСкс Β«1Β») ΠΈΠ»ΠΈ столбцам (индСкс Β«2Β») ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.Π‘ΠΌ. Π­Ρ‚Ρƒ страницу для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

  1. внахлСст ()

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту списка ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ список (Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π±ΡƒΠΊΠ²Ρƒ Β«lΒ» Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΎΠ± этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ здСсь.

  1. сапр ()

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту списка, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€, Π° Π½Π΅ список. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ большС? ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ эту страницу.

БвязанныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: sweep () , by () ΠΈ aggregate () ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вмСстС с элСмСнтами сСмСйства apply () .

Π― ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽ обсуТдСниС этого сообщСния Π² Π±Π»ΠΎΠ³Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ apply () (Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ обсуТдСниС этой Ρ‚Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ внимания Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… сообщСний).

Для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ M Π²Ρ‹Π·ΠΎΠ² apply (M, 1, fun) ΠΈΠ»ΠΈ apply (M, 2, fun) ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fun ΠΊ строкам M , Ссли 1 ΡƒΠΊΠ°Π·Π°Π½ΠΎ; ΠΈΠ»ΠΈ ΠΊ столбцам M , Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ 2 .Π­Ρ‚ΠΎΡ‚ числовой Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ называСтся Β«ΠΌΠ°Ρ€ΠΆΠ°Β», ΠΈ ΠΎΠ½ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ значСниями 1 ΠΈ 2 , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. Однако вмСсто этого Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ массив Π΄ΠΎ 8 ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ.

Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой допустимой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ R, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ функция, опрСдСляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (UDF), Π΄Π°ΠΆΠ΅ закодированная Π²Π½ΡƒΡ‚Ρ€ΠΈ apply () , Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообраТСния ΠΏΠΎ использованию ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ пСтлям Π² R

Π˜Ρ‚Π°ΠΊ, это ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ нас ΠΎΡ‚ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… конструкций Ρ†ΠΈΠΊΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊ (Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ) ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ использования ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сСмСйства apply () , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² R .

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ: для , Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ , ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ ΠΈ способ ΠΈΡ… прСрывания ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π½ΠΈΡ….

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послСдниС ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π½Π°ΠΌΠ΅ΠΊΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² R, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ ΠΈΡ… ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π° ΠΌΠΎΠΉ взгляд, Π²Π°ΠΌ слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эти структуры программирования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

  1. Π’ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ R Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вашим СдинствСнным языком Π² Π½Π°ΡƒΠΊΠ΅ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΡ… конструкций, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ»Ρ‹, - полСзная Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² свою сумку Π½Π°Π²Ρ‹ΠΊΠΎΠ².Бинтаксис Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ языка, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ освоитС ΠΈΡ… Π½Π° ΠΎΠ΄Π½ΠΎΠΌ, Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΡ… ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ.
  2. ВсСлСнная R ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, Ссли Π½Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠΏΠ°ΡΠ°Ρ‚ΡŒΡΡ всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ R. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ способов Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ эффСктивны ΠΈΠ»ΠΈ элСгантны, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΈ ваша кривая обучСния Π±ΡƒΠ΄Π΅Ρ‚ постСпСнной; Когда Π²Ρ‹ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сСбя ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивных способах Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ.К Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ это, нСсколько Π½ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹, ΠΈ поэтому ΡˆΠ°Π½ΡΡ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΡ… всС Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈ, Ссли Π²Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ всС своС врСмя Π² качСствС R-спСциалиста.
  3. НаконСц, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ссли Π²Ρ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с особо ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. И, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вас ΠΊΠ°ΠΊ спСциалиста ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, которая просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, вас Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ элСгантныС способы получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ процСссС Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Π² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΈ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° содСрТании. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, скорСС всСго, спСциалист ΠΏΠΎ бэкСнду, позаботится ΠΎ стадии производства (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ ΠΈΠ»ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС!)

Если Ρ†ΠΈΠΊΠ»Ρ‹ for Π² R большС Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ для вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ послС прочтСния этого руководства, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ курса DataCamp Intermediate R - Practice. Π­Ρ‚ΠΎΡ‚ курс ΡƒΠΊΡ€Π΅ΠΏΠΈΡ‚ ваши знания ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ срСднСго уровня R с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мноТСства Π½ΠΎΠ²Ρ‹Ρ… ΠΈ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ.Если, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ†ΠΈΠΊΠ»Ρ‹ большС Π½Π΅ хранят для вас сСкрСтов, вас ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ курс DataCamp Writing Functions in R, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽΡ‚ Π₯эдли ΠΈ Π¨Π°Ρ€Π»ΠΎΡ‚Ρ‚Π° Уикхэм.

Π›ΡƒΡ‡ΡˆΠΈΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ C ++ For Loop с синтаксисом ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

C ++ - это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ популярный язык программирования, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² индСксС TIOBE ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 4-Π΅ мСсто, ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎ C ++ For Loop.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ‚Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ C ++ For Loop:

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ C ++ For Loop?
  • Π”Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° For
  • Π Π°Π±ΠΎΡ‚Π° Ρ†ΠΈΠΊΠ»Π° For
  • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ for
  • Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ‚Π»ΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ C ++ For Loop?

Π¦ΠΈΠΊΠ» for - это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° Π½Π° основС допустимости Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… условий.Π­Ρ‚ΠΎ заставляСт ΠΊΠΎΠ΄ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ.

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

Full Stack Web Developer Course
Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ экспСртом Π² курсС MEAN StackView

Бинтаксис:

для (ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС; БостояниС; ОбновлСниС)

{

Π’Π΅Π»ΠΎ ΠΏΠ΅Ρ‚Π»ΠΈ

}

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

Рис. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»Π° для C ++

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ†Π΅Π»ΡŒΡŽ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 10 Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… чисСл.Π‘Ρ‹Π»ΠΎ Π·Π°Π΄Π°Π½ΠΎ условиС - i мСньшС 10, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ числа Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, ΠΏΠΎΠΊΠ° i Π½Π΅ достигнСт 10.

НиТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π°.

Рис: C ++ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ†ΠΈΠΊΠ»Π°

ΠœΠ°ΠΊΠ΅Ρ‚ Ρ†ΠΈΠΊΠ»Π° For

Π¦ΠΈΠΊΠ» for состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… частСй. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ - это инициализация ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ - это условиС ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с этими трСмя частями ΠΈΠ»ΠΈ выраТСниями.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ: Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.Π’ этой части Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Π°. Он выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС Ρ†ΠΈΠΊΠ»Π° for.

УсловиС: для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for провСряСтся условиС. Если условиС истинно, Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ Ρ‚Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся послС Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» закончится.

ОбновлСниС: этап обновлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обновлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎΡ‚ шаг ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счСтчик Ρ†ΠΈΠΊΠ»Π°.

Когда Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Ρ†ΠΈΠΊΠ»Π΅ for, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ€Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» for Π² C ++.

Π Π°Π±ΠΎΡ‚Π° Ρ†ΠΈΠΊΠ»Π° For

Рис: Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π° for

  • Когда начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° for, ΠΎΠ½ сначала выполняСт ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с 0 ΠΈΠ»ΠΈ 1, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·.

  • ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ условиС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, истинно ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎ условиС.Если условиС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ истинному Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° Ρ‚Π΅Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ обновлСния. Но Ссли условиС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π»ΠΎΠΆΠ½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° body Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

  • ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния Ρ‚Π΅Π»Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ части обновлСния, Π³Π΄Π΅ происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»Π°.

  • ПослС выполнСния Ρ€Π°Π·Π΄Π΅Π»Π° обновлСния условиС снова провСряСтся.Если ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истину, Ρ‚ΠΎ вСсь процСсс повторяСтся для ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» for Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² C ++ для Ρ†ΠΈΠΊΠ»Π°

.
Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π·Π²Π΅Π·Π΄Ρƒ ΠΊ своСй ΠΎΡ†Π΅Π½ΠΊΠ΅ эффСктивности
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ знания ΠΎΡ‚ отраслСвых экспСртов для FREEStart Learning

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ for

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Ρ‚Ρ€ΠΈ части ΠΈΠ»ΠΈ выраТСния Ρ†ΠΈΠΊΠ»Π° for, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for Π±Π΅Π· этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.НапримСр:

для (;;)

{

ΠΊΡƒΠ·ΠΎΠ²

}

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² Ρ†ΠΈΠΊΠ»Π΅ for Π½Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, поэтому Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ бСсконСчным. Однако Π΅Π³ΠΎ ΠΌΠ°Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚.

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ обновлСния Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°.

Рис. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ выраТСния Ρ†ΠΈΠΊΠ»Π° For

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ†ΠΈΠΊΠ»Π°.Π’Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Β«iΒ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0 Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ†ΠΈΠΊΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° приращСния с Β«iΒ» Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:

Рис. Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Π° For

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

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for. Π¦ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ внСшнСго Ρ†ΠΈΠΊΠ»Π°, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ внСшний Ρ†ΠΈΠΊΠ» смоТСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ своС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅.

Бинтаксис:

Рис. Бинтаксис Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° For

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

Рис: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° For

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² этой дСмонстрации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π° for, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ x ΠΈ y. Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° x = 0, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ y оцСниваСтся ΠΏΡ€ΠΈ условии y <3. Если ΠΎΠ½ΠΎ оцСниваСтся ΠΊΠ°ΠΊ истинноС, Ρ‚ΠΎ для этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния x ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ y, Ρ‚. Π•. 0, 1 ΠΈ 2, Ρ€Π°Π²Π½ΠΎ пСчатаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° условиС Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

Аналогично, ΠΏΠΎΡ‚ΠΎΠΊ повторяСтся для x, Ρ€Π°Π²Π½ΠΎΠ³ΠΎ 1 ΠΈ 2.

Он ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π° Π½ΠΈΠΆΠ΅:

Π’Ρ‹Ρ…ΠΎΠ΄

Рис: Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ для Π²Ρ‹Ρ…ΠΎΠ΄Π° Ρ†ΠΈΠΊΠ»Π°

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

Из этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ программирования, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ» for. Π’Ρ‹ рассмотрСли, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» for, ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ выраТСния Ρ†ΠΈΠΊΠ»Π° for Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ†ΠΈΠΊΠ»Π°Ρ… Π² C ++? ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ руководством ΠΏΠΎ Ρ†ΠΈΠΊΠ»Ρƒ C ++ While.

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ Π½Π° сСгодняшний дСнь языками программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ компаниями ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ? Если Π΄Π°, Ρ‚ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° послСдипломного образования Simplilearn ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π­Ρ‚ΠΎΡ‚ 9-мСсячный ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс ΠΌΠΈΡ€ΠΎΠ²ΠΎΠ³ΠΎ уровня проводится Π² сотрудничСствС с Caltech CTME ΠΈ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 30 вострСбованных инструмСнтов ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ вас Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ для выполнСния Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… долТностСй Π² области Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

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

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

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