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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ПолноС руководство. Π‘# 4.0Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.2 β€” простоС число3 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 4 Ρ€Π°Π²Π΅Π½ 25 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 6 Ρ€Π°Π²Π΅Π½ 37 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 8 Ρ€Π°Π²Π΅Π½ 4Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 9 Ρ€Π°Π²Π΅Π½ 3Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 10 Ρ€Π°Π²Π΅Π½ 511 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 12 Ρ€Π°Π²Π΅Π½ 613 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 14 Ρ€Π°Π²Π΅Π½ 7Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 15 Ρ€Π°Π²Π΅Π½ 5Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 16 Ρ€Π°Π²Π΅Π½ 817 β€” простоС Ρ‡ΠΈΡΠ»ΠΎΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ числа 18 Ρ€Π°Π²Π΅Π½ 919 - простоС числоНСкоторыС разновидности ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° for

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° for относится ΠΊ самым ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ языка Π‘#, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ допускаСт самыС Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ своСго примСнСния. НСкоторыС разновидности ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π° for Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΈΠΆΠ΅.ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… дляуправлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π’ этом случаС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятой. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запятыС Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for.using System;class Comma { static void Main() { int i, j; for(i=0, j=10; i < j; i++, j--) Console.WriteLine("i ΠΈ j: " + i + " " + j); }}

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.i ΠΈ j: 0 10i ΠΈ j: 1 9i ΠΈ j: 2 8i ΠΈ j: 3 7i ΠΈ j: 4 6

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

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… пСрСмСнныхуправлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ for. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡΠ΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ управлСния ΠΎΠ΄Π½ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для выявлСния наибольшСго ΠΈ наимСньшСго мноТитСля Ρ†Π΅Π»ΠΎΠ³ΠΎ числа (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” 100). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° условиС окончания Ρ†ΠΈΠΊΠ»Π°. Оно опираСтся Π½Π° ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ управлСнияциклом.// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запятыС Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for для// выявлСния наимСньшСго ΠΈ наибольшСго мноТитСля числа.using System;class Comma { static void Main() { int i, j; int smallest, largest; int num; num = 100; smallest = largest = 1; for(i=2, j=num/2; (i <= num/2) & (j >= 2); i++, j--) { if((smallest == 1) & ((num % i) == 0)) smallest = i; if((largest == 1) & ((num % j) == 0)) largest = j; } Console.WriteLine("Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ: " + largest); Console.WriteLine("НаимСньший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ: " + smallest); }}

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ: 50НаимСньший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ: 2

Благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ удаСтся Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ наимСньший ΠΈ наибольший ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ числа Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ for. Π’ частности, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная i слуТит для выявлСния наимСньшСго мноТитСля. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΅Π΅Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ устанавливаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 2 ΠΈ Π·Π°Ρ‚Π΅ΠΌ инкрСмСнтируСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ прСвысит ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num. А ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ пСрСмСнная j слуТит длявыявлСния наибольшСго мноТитСля. Π•Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ устанавливаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num ΠΈ Π·Π°Ρ‚Π΅ΠΌ дСкрСмСнтируСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ°Π½Π΅ станСт мСньшС 2. Π¦ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅,i ΠΈ j, Π½Π΅ достигнут своих ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Π° ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ выявлСнными.УсловноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Условным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΄Π°ΡŽΡ‰Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΈΠΏΠ° bool. Π’ Π½Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ пСрСмСнная управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ†ΠΈΠΊΠ»ΠΎΠΌ for осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ done.// УсловиСм выполнСния Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° bool.using System;class forDemo { static void Main() { int i, j; bool done = false; for(i=0, j=100; !done; i++, j--) { if(i*i >= j) done = true; Console.WriteLine("i, j: " + i + " " + j); } }}

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.i, j: 0 100i, j: 1 99i, j: 2 98i, j: 3 97i, j: 4 96i, j: 5 95i, j: 6 94i, j: 7 93i, j: 8 92i, j: 9 91i, j: 10 90

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ†ΠΈΠΊΠ» for повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉdone Ρ‚ΠΈΠΏΠ° Π½Π΅ окаТСтся истинным (true). Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ done устанавливаСтся Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i оказываСтся большС ΠΈΠ»ΠΈΡ€Π°Π²Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ j.ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ части Ρ†ΠΈΠΊΠ»Π°

Ряд интСрСсных разновидностСй Ρ†ΠΈΠΊΠ»Π° for получаСтся Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒΠΏΡƒΡΡ‚Ρ‹ΠΌΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части опрСдСлСния Ρ†ΠΈΠΊΠ»Π°. Π’ C# допускаСтся ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡƒΡΡ‚Ρ‹ΠΌΠΈΠ»ΡŽΠ±Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΆΠ΅ всС части ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, условия ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for.Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.// ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части Ρ†ΠΈΠΊΠ»Π° for ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ пустыми.using System;class Empty { static void Main() { int i; for(i = 0; i < 10; ) { Console.WriteLine("ΠŸΡ€ΠΎΡ…ΠΎΠ΄ β„–" + i); i++; // ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ } }}

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· опрСдСлСния Ρ†ΠΈΠΊΠ»Π° for ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ.// Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· опрСдСлСния Ρ†ΠΈΠΊΠ»Π° for.using System;class Empty2 { static void Main() { int i; i = 0; // ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ· опрСдСлСния Ρ†ΠΈΠΊΠ»Π° for(; i < 10; ) { Console.WriteLine("ΠŸΡ€ΠΎΡ…ΠΎΠ΄ β„–" + i); i++; // ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ } }}

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

Если ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустым Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ условия Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Ρ†ΠΈΠΊΠ»Π° for, Ρ‚ΠΎ получитсябСсконСчный Ρ†ΠΈΠΊΠ», Ρ‚.Π΅. Ρ‚Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ заканчиваСтся. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Π‘# ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ создаСтсябСсконСчный Ρ†ΠΈΠΊΠ».for(;;) // Ρ†ΠΈΠΊΠ», Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ сдСланный бСсконСчным{ //...}

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ бСсконСчныС Ρ†ΠΈΠΊΠ»Ρ‹Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… процСссоров ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ…"бСсконСчных" Ρ†ΠΈΠΊΠ»ΠΎΠ² Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой Ρ†ΠΈΠΊΠ»Ρ‹ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ трСбованиями ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ. (ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом β€” Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°break для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°" Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.)Π¦ΠΈΠΊΠ»Ρ‹ Π±Π΅Π· Ρ‚Π΅Π»Π°

Π’ C# допускаСтся ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ пустым Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния синтаксиса этого языка считаСтся Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π¦ΠΈΠΊΠ»Ρ‹ Π±Π΅Π· Ρ‚Π΅Π»Π° Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ†ΠΈΠΊΠ» Π±Π΅Π· Ρ‚Π΅Π»Π° слуТит для получСния суммы чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5.// Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым.using System;class Empty3 { static void Main() { int i; int sum = 0; // ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сумму чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5 for(i = 1; i <= 5; sum += i++); Console.WriteLine("Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π° " + sum); }}