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

Π’ языкС запросов ΠΈ встроСнном языкС 1Π‘ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ†ΠΈΠΊΠ»Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, извСстна Π»ΠΈ Π·Π°Ρ€Π°Π½Π΅Π΅ итСрация, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ПониманиС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ синтаксис ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ сцСнарии ΠΈΡ… использования ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° "ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ зависанию систСмы ΠΈΠ»ΠΈ ошибкам выполнСния. Π“Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ΅ использованиС этих инструмСнтов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΈ быстрый ΠΊΠΎΠ΄.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "Для" (For): Ρ€Π°Π±ΠΎΡ‚Π° с числовыми Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ

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

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

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

Массив = Новый Массив(10);

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = 1 По 10 Π¦ΠΈΠΊΠ»

Массив[Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ - 1] = Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ * Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

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

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ "Для" ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°, вынося тяТСлыС вычислСния Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "Пока" (While): условноС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ дСйствий

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

Главная ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° Пока β€” созданиС бСсконСчного Ρ†ΠΈΠΊΠ»Π°. Если условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° зависнСт, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π»ΡŽ придСтся ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ процСсс. ВсСгда ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ условия, приблиТая Π΅Ρ‘ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π²Ρ‹Ρ…ΠΎΠ΄Π°.

Часто этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ для экстрСнного Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… событий. НапримСр, ΠΏΡ€ΠΈ поискС элСмСнта Π² спискС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ сразу послС нахоТдСния Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ значСния, Π½Π΅ тратя врСмя Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов.

Π‘ΡƒΠΌΠΌΠ° = 0;

ВСкущССЧисло = 1;

Пока Π‘ΡƒΠΌΠΌΠ° < 1000 Π¦ΠΈΠΊΠ»

Π‘ΡƒΠΌΠΌΠ° = Π‘ΡƒΠΌΠΌΠ° + ВСкущССЧисло;

ВСкущССЧисло = ВСкущССЧисло + 1;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³ΠΈΠ±Ρ‡Π΅, Ρ‡Π΅ΠΌ Ρ†ΠΈΠΊΠ» "Для", Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Ошибка Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ измСнСния условия ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» выполнится лишниС Ρ€Π°Π·Ρ‹ ΠΈΠ»ΠΈ Π½Π΅ выполнится вовсС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° "Пока" для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° достигаСтся Π΄Π°ΠΆΠ΅ Π² случаС возникновСния ошибок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

πŸ“Š Какой Ρ†ΠΈΠΊΠ» Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Для (For)
Пока (While)
Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ (ForEach)
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ†ΠΈΠΊΠ»Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ" (ForEach): ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

НаиболСС ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ бСзопасный способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ... Из ... Π¦ΠΈΠΊΠ». Он автоматичСски ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ элСмСнты ΠΈΠ· массивов, списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² запросов. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± индСксах ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° списка Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹. Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠ΄ становится Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ сСмантичСски понятным: ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ "для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° сдСлай Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ", Π° Π½Π΅ "возьми элСмСнт ΠΏΠΎ индСксу i".

БписокВоваров = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΡΡ‹Π»ΠΊΠΈΠΠ°ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρƒ();

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π’ΠΎΠ²Π°Ρ€ Из БписокВоваров Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚ΠΎΠ²Π°Ρ€Π°: " + Π’ΠΎΠ²Π°Ρ€.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ модификация самой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов) Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ‡Π΅Ρ€Π΅Π· "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ" ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому повСдСнию ΠΈΠ»ΠΈ ошибкС выполнСния. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» "Пока" с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ индСксом.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ: ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΠΈ ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… "Π½Π° Π»Π΅Ρ‚Ρƒ". Если элСмСнт Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, ΠΌΡ‹ сразу ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ, экономя рСсурсы Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ лишнСй Π»ΠΎΠ³ΠΈΠΊΠΈ для Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ нСподходящих Π΄Π°Π½Π½Ρ‹Ρ….

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠœΠ°ΡΡΠΈΠ²Π”Π°Π½Π½Ρ‹Ρ… Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ Π’ΠΎΠ³Π΄Π°

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

// Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ…

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π—Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ этими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Если Π»ΠΎΠ³ΠΈΠΊΠ° становится слишком Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ ΠΈΠ·-Π·Π° мноТСства ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ»ΠΈ вынСсти Ρ‡Π°ΡΡ‚ΡŒ условий Π²ΠΎ внСшниС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°

Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Ρ‚ΠΈΠΏΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° Π² зависимости ΠΎΡ‚ исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.

Π’ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π° Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ ΠΊΠΎΠ»-Π²ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π Π°Π±ΠΎΡ‚Π° с коллСкциями Риск бСсконСчности
Для Π”Π° НСт (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ индСксу) Низкий
Пока НСт Π”Π° (Ρ€ΡƒΡ‡Π½ΠΎΠΉ доступ) Высокий
Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ НСт (автоматичСски) Π”Π° (ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ) ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π’Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Бписком Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ". Π­Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π¦ΠΈΠΊΠ» "Пока" остаСтся Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ для слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² с динамичСскими условиями Π²Ρ‹Ρ…ΠΎΠ΄Π°.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²

ΠŸΡ€ΠΈ использовании Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ с мСньшим количСством элСмСнтов Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅, Π° с большим β€” Π²ΠΎ внСшнСм. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счСт ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ процСссора.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ оптимизация Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² 1Π‘

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ "ΡƒΠ·ΠΊΠΈΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌ" всСй систСмы, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия. Основная рСкомСндация β€” ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. ВмСсто запроса Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΈΠΌ запросом ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡ… Π² памяти.

ИспользованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ»ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π² памяти Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт процСсс. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ записи Π² Π±Π°Π·Π΅, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ массового обновлСния, Π° Π½Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ записи Π² Ρ†ΠΈΠΊΠ»Π΅. Π­Ρ‚ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π‘Π£Π‘Π” ΠΈ сСтСвой Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ тяТСлых вычислСний ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° слоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этих вычислСний Π½Π΅ зависит ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ВынСситС Ρ‚Π°ΠΊΠΈΠ΅ расчСты Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ†ΠΈΠΊΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ возмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². ВсСгда свСряйтС синтаксис ΠΈ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ для вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² справочной систСмС ΠΈΠ»ΠΈ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ: ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ обращСния ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², загруТая Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΈΠΌ запросом ΠΈ обрабатывая ΠΈΡ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

ЧастыС ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΡ€ΠΈ написании Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Одна ΠΈΠ· Π½ΠΈΡ… β€” ошибка "ИндСкс Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°" ΠΏΡ€ΠΈ использовании Ρ†ΠΈΠΊΠ»Π° "Для" с массивами. ВсСгда провСряйтС, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива, учитывая, Ρ‡Ρ‚ΠΎ индСксация Π² 1Π‘ часто начинаСтся с нуля.

  • 😱 БСсконСчный Ρ†ΠΈΠΊΠ»: Π—Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ условия Π² Ρ†ΠΈΠΊΠ»Π΅ "Пока".
  • πŸ“‰ ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ…: ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ".
  • 🐒 Низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΊ Π‘Π” Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова (breakpoint) Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ†ΠΈΠΊΠ»Π° ΠΈ пошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° значСниями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…-счСтчиков ΠΈ условий Π² ΠΎΠΊΠ½Π΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ логичСскиС нСсоотвСтствия.

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

МоТно Π»ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π²ΠΎ врСмя Ρ†ΠΈΠΊΠ»Π° "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ"?

НСт, это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» "Пока" с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ индСксом ΠΈΠ»ΠΈ создайтС копию ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.

Какой Ρ†ΠΈΠΊΠ» быстрСС для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

Π¦ΠΈΠΊΠ» "Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ" ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Однако наибольшСС влияниС Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π°, Π° объСм Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ тяТСлых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρ†ΠΈΠΊΠ» зациклился?

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ" Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ оТидания. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ остановку выполнСния. ПослС этого ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ измСнСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²?

ВСхничСского ограничСния Π½Π° Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ влоТСнности Π² языкС 1Π‘ Π½Π΅Ρ‚, Π½ΠΎ чрСзмСрная Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ (Π±ΠΎΠ»Π΅Π΅ 3-4 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ) Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ слоТным Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ²?

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ) Ρ†ΠΈΠΊΠ»Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· всСх ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности сразу, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΡƒΡŽ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ†ΠΈΠΊΠ»Π°Ρ…, ΠΈΠ»ΠΈ вынСситС Π»ΠΎΠ³ΠΈΠΊΡƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚.