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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Ѐилософия Java3Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 23

Автор Π‘Ρ€ΡŽΡ ЭккСль

МоТно Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° boolean, любой ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρƒ. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡ‚Π΅Ρ€Π΅Π³Π°Ρ‚ΡŒΡΡ ΡΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ привСдСния ΠΏΡ€ΠΈ прСобразованиях ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ этом Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ риск ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

РСзюмС

Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° любом языкС сСмСйства Π‘ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Java ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΉΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ классичСских. Если ΠΆΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» этой Π³Π»Π°Π²Ρ‹ показался Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠΉ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Β«Thinking in Π‘Β» (www.MindView.net).

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции

Подобно Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΆΠΈΠ²ΠΎΠΌΡƒ сущСству, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим ΠΌΠΈΡ€ΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²ΠΎ врСмя исполнСния. Π’ языкС Java для принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции.

Π’ Java задСйствованы всС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции языка Π‘, поэтому читатСлям с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ программирования Π½Π° языкС Π‘ ΠΈΠ»ΠΈ Π‘++ основная Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°ΠΊΠΎΠΌΠ°. ΠŸΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языках ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ стандартныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния, ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Π’ Java ΠΊ ΠΈΡ… числу относятся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова if-else, while, do-while, for, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π±ΠΎΡ€Π° switch. Однако Π² Java Π½Π΅ поддСрТиваСтся часто ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ goto (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, всС ΠΆΠ΅ являСтся самым ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях). БСзусловныС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Β«Π² стилС» goto Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с классичСскими ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ goto.

true ΠΈ false

ВсС конструкции с условиСм Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ условного выраТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ способ выполнСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ условного выраТСния β€” А β€” Π’. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сравнСния = провСряСт, Ρ€Π°Π²Π½ΠΎ Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ А Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π’. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ истинным (true) ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½Ρ‹ΠΌ (false). Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· описанных Π² этой Π³Π»Π°Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² условном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Java Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числа Π² качСствС логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, хотя это ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π² Π‘ ΠΈ Π‘++ (Π³Π΄Π΅ Π½Π΅-ноль считаСтся «истинным», Π° ноль β€” Β«Π»ΠΎΠΆΠ½Ρ‹ΠΌΒ»). Если Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ числовой Ρ‚ΠΈΠΏ Ρ‚Π°ΠΌ, Π³Π΄Π΅ трСбуСтся boolean (скаТСм, Π² условии if(a)), сначала придСтся Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ логичСскому Ρ‚ΠΈΠΏΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ сравнСния Π² условном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, if (Π° != 0).

if-else

Команда if-else являСтся, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным способом ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова else Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, поэтому конструкция if сущСствуСт Π² Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…:

if(логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΊΠΎΠΌΠ°Π½Π΄Π°

ΠΈ

if(логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΊΠΎΠΌΠ°Π½Π΄Π°

else

ΠΊΠΎΠΌΠ°Π½Π΄Π°

УсловиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΈΠΏΠ° boolean. Π’ сСкции ΠΊΠΎΠΌΠ°Π½Π΄Π° располагаСтся Π»ΠΈΠ±ΠΎ простая ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой, Π»ΠΈΠ±ΠΎ составная конструкция ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° примСнСния if-else прСдставлСн ΠΌΠ΅Ρ‚ΠΎΠ΄ test(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ двумя числами β€” «большС», «мСньшС» ΠΈΠ»ΠΈ Β«Ρ€Π°Π²Π½ΠΎΒ»:

//. control/IfElse.java

import static net.mindview.util.Print.*;

public class IfElse {

static int result = 0; static void test(int testval. int target) { if(testval > target) result = +1; else if(testval < target) result = -1:

else

result = 0; // Ρ€Π°Π²Π½Ρ‹Π΅ числа

}

public static void main(String[] args) { test(10. 5); print(result); test(5. 10); print(result); test(5. 5); print(result);

}

} /* Output:

1

-1

0

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° test() встрСчаСтся конструкция else if; это Π½Π΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, a else, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π½Π°Ρ‡Π°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” if.

Java, ΠΊΠ°ΠΊ ΠΈ Π‘ с Π‘++, относится ΠΊ языкам со свободным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… управлСния рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ отступы, благодаря Ρ‡Π΅ΠΌΡƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π³Π΄Π΅ начинаСтся ΠΈ заканчиваСтся ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ конструкция.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ конструкции

Π¦ΠΈΠΊΠ»Ρ‹

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ while, do-while ΠΈ for ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ цикличСскими ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Команда повторяСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ. Π€ΠΎΡ€ΠΌΠ° Ρ†ΠΈΠΊΠ»Π° while ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

\Π»/ИПС(логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΊΠΎΠΌΠ°Π½Π΄Π°

логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ вычисляСтся ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ повторСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ случайныС числа Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ условиС:

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

public class WhileTest {

static boolean conditionO {

boolean result = Math.randomO < 0.99; System.out.print(result + "); return result;

}

public static void main(String[] args) { while(conditionO)

System out printlnC"Inside 'while"'), System.out.println("Exited 'while'");

}

} /* (Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚) *///β€’-

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ random() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Math, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ double, находящССся ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 1 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ 0, Π½ΠΎ Π½Π΅ 1). УсловиС while ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Β«ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° condition() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ trueΒ». ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ количСство чисСл.

do-while

Π€ΠΎΡ€ΠΌΠ° конструкции do-while Ρ‚Π°ΠΊΠΎΠ²Π°:

do

ΠΊΠΎΠΌΠ°Π½Π΄Π°

ΠΈ/1Π³Π›Π΅(логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅);

ЕдинствСнноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° do-while ΠΎΡ‚ while состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» do-while выполняСтся ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹, Π΄Π°ΠΆΠ΅ Ссли условиС ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎ. Π’ Ρ†ΠΈΠΊΠ»Π΅ while, Ссли условиС ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π»ΠΎΠΆΠ½ΠΎ, Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ конструкция do-while употрСбляСтся Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ while.

for

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, конструкции for ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ². Π¦ΠΈΠΊΠ» for ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Ρ†ΠΈΠΊΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ выполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия Ρ†ΠΈΠΊΠ»Π°, ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ осущСствляСтся Π½Π΅ΠΊΠΎΠ΅ Β«ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅Β» (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ). Π¦ΠΈΠΊΠ» for записываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

103

^(инициализация; логичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅; шаг)

ΠΊΠΎΠΌΠ°Π½Π΄Π°

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

Π¦ΠΈΠΊΠ» for ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для «счСтных» Π·Π°Π΄Π°Ρ‡:

// control/ListCharacters.java

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

// всСх ASCII-символов Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра

public class ListCharacters {

public static void main(String[] args) { for(char с = 0, с < 128, Б++)

i f(Character.i sLowerCase(c))

System out Ρ€ΠΏΠΏΠ¨Π‘Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅- " + (int)c + " символ. " + с).

}

} /* Output-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 97 символ a Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 98 символ b" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 99 символ с" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100 символ d" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅- 101 символ: Π΅" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 102 символ, f" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 103 символ, Π΄" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 104 символ: h" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅- 105 символ- i Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 106 символ- j

*///:-

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

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс-Β«ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ°Β» java.Lang.Character, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позволяСт ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Ρ‚ΠΈΠΏ char Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ ΠΈ содСрТит ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ этого класса isLowerCase(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт, являСтся Π»ΠΈ нСкоторая Π±ΡƒΠΊΠ²Π° строчной.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ языки (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π‘) Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ Π±Π»ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор ΠΏΡ€ΠΈ создании Π±Π»ΠΎΠΊΠ° ΠΌΠΎΠ³ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ Java ΠΈ Π‘++ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ мСстС Π±Π»ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π°, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ стилС ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€-запятая

Π Π°Π½Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «запятая» (Π½ΠΎ Π½Π΅ запя-тая-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, которая Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ опрСдСлСния ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Java Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for. И Π² сСкции ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°, ΠΈ Π² Π΅Π³ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми; ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «запятая» позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π΅ for, Π½ΠΎ всС эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ:

//. control/CommaOperator.java

public class CommaOperator {

public static void main(String[] args) {

for(int i = 1. j = i + 10, i < 5. i++, j = i * 2) {

System out.printlnC'i = " + i + " j = " + j);

}

}

} /* Output: i = 1 j = 11 i = 2 j = 4 i = 3 j = 6 i = 4 j = 8 *///:-

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ int Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ for относится ΠΊΠ°ΠΊ ΠΊ i, Ρ‚Π°ΠΊ ΠΈ ΠΊ j. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΎΠ½-ная Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС количСство ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… выраТСниях Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ for. На Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ² этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ распространяСтся.

Бинтаксис foreach

Π’ Java SE5 появилась новая, Π±ΠΎΠ»Π΅Π΅ компактная Ρ„ΠΎΡ€ΠΌΠ° for для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов массивов ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (см. Π΄Π°Π»Π΅Π΅). Π­Ρ‚Π° упрощСнная Ρ„ΠΎΡ€ΠΌΠ°, называСмая синтаксисом foreach, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ измСнСния слуТСбной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” Ρ†ΠΈΠΊΠ» автоматичСски прСдставляСт ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт массив float, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС Π΅Π³ΠΎ элСмСнты:

//β€’ control/ForEachFloat.java import java util.*,

public class ForEachFloat {

public static void main(String[] args) { Random rand = new Random(47), float f[] = new float[10], for(int i = 0; i < 10. i++)