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

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

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

}

if(i == 3) {

printC'break");

i++; // Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i

// Π½Π΅ увСличиваСтся break;

}

if(i - 7) {

printC'continue outer");

i++; // Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i

// Π½Π΅ увСличиваСтся continue outer;

}

if(i == 8) {

printC'break outer"); break outer;

}

for(int k = 0; k < 5; k++) {β€’ if (k == 3) {

printC'continue inner"); continue inner;

}

}

}

}

// Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ break ΠΈΠ»ΠΈ continue // с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ здСсь Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ

}

} /* Output: i = 0

continue inner i = 1

continue inner i = 2 continue i = 3 break i = 4

continue inner i = 5

continue inner i = 6

continue inner i = 7

continue outer i = 8

break outer *///:-

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» for, вслСдствиС этого Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π½Π΅ выполняСтся Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ шага. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ·-Π·Π° пропуска ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π² Ρ†ΠΈΠΊΠ»Π΅ пСрСмСнная нСпосрСдствСнно увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΊΠΎΠ³Π΄Π° i β€” 3. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ условия i == 7 ΠΊΠΎΠΌΠ°Π½Π΄Π° continue outer ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°; ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΠΏΡΡ‚ΡŒ пропускаСтся, поэтому ΠΈ Π² этом случаС пСрСмСнная увСличиваСтся явно.

Π‘Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ break outer ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ внСшний Ρ†ΠΈΠΊΠ» ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° break сама ΠΏΠΎ сСбС Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° (это справСдливо ΠΈ для continue).

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ return.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ break ΠΈ continue с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ while:

//: control/LabeledWhile java

// Π¦ΠΈΠΊΠ» while с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ

import static net mindview.util.Print.*;

public class LabeledWhile {

public static void main(String[] args) { int i = 0; outer:

while(true) {

print("Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» while"); while(true) { i++;

printC'i = " + i); if(i == 1) {

print("continue"); continue;

}

if(i == 3) {

print("continue outer"); continue outer;

}

if(i == 5) {

printC'break"); break,

}

if(i == 7) {

printC'break outer"); break outer;

}

}

}

}

} /* Output: Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» while i = 1 continue i = 2 i = 3

continue outer Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» while i = 4 i = 5 break

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» while i = 6

i = 7

break outer

*///-

Π’Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π΅Ρ€Π½Ρ‹ ΠΈ для Ρ†ΠΈΠΊΠ»Π° while:

β€’ ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° continue ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ исполнСниС ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

β€’ ΠšΠΎΠΌΠ°Π½Π΄Π° continue с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ Π² Ρ†ΠΈΠΊΠ», ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ прямо Π·Π° этой ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.

β€’ ΠšΠΎΠΌΠ°Π½Π΄Π° break Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

β€’ ΠšΠΎΠΌΠ°Π½Π΄Π° break с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈ Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ СдинствСнная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° для сущСствования ΠΌΠ΅Ρ‚ΠΎΠΊ Π² Java β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΠΎ break ΠΈ продолТСния ΠΏΠΎ continue Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ…, Π½ΠΎ ΠΈ для Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ДСйкстры особСнно ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π° Π½Π΅ сам ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ goto. ДСйкстра ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, количСство ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ растСт с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ количСства ΠΌΠ΅Ρ‚ΠΎΠΊ Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠœΠ΅Ρ‚ΠΊΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‚ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΊΠΈ Java Π½Π΅ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ этими ΠΏΠΎΡ€ΠΎΠΊΠ°ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡ… мСсто располоТСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для бСспорядочной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡ‚ ограничСния возмоТностСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ языка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚.

switch

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ switch часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции switch осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², Π² зависимости ΠΎΡ‚ значСния цСлочислСнного выраТСния. Π€ΠΎΡ€ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выглядит Ρ‚Π°ΠΊ:

switch(цСлочислСнноС-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) {

case Ρ†Π΅Π»ΠΎΠ΅-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1 ΠΊΠΎΠΌΠ°Π½Π΄Π°; break; case Ρ†Π΅Π»ΠΎΠ΅-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2 : ΠΊΠΎΠΌΠ°Π½Π΄Π°; break, case Ρ†Π΅Π»ΠΎΠ΅-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π— : ΠΊΠΎΠΌΠ°Π½Π΄Π°; break; case Ρ†Π΅Π»ΠΎΠ΅-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅4 β€’ ΠΊΠΎΠΌΠ°Π½Π΄Π°; break; case Ρ†Π΅Π»ΠΎΠ΅-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π± : ΠΊΠΎΠΌΠ°Π½Π΄Π°; break; // ..

default: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;

}

ЦСлочислСнноС-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ получаСтся Ρ†Π΅Π»ΠΎΠ΅ число. Команда switch сравниваСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ цСлочислСнного-Π²Ρ‹-раТСния с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ†Π΅Π»Ρ‹ΠΌ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Если обнаруТиваСтся совпадСниС, исполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° (простая ΠΈΠ»ΠΈ составная). Если ΠΆΠ΅ совпадСния Π½Π΅ находится, исполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова default.

НСтрудно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая сСкция case заканчиваСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ break, которая ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ switch. Π’Π°ΠΊΠΎΠΉ синтаксис построСния конструкции switch считаСтся стандартным, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° break Π½Π΅ являСтся строго ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. Если ΠΎΠ½Π° отсутствуСт, ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· сСкции Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сСкций case, ΠΏΠΎΠΊΠ° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ встрСтится очСрСдная ΠΊΠΎΠΌΠ°Π½Π΄Π° break. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ довольно Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠΌΡƒ программисту ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ послСдняя сСкция default Π½Π΅ содСрТит ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ break; Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся Π² ΠΊΠΎΠ½Ρ†Π΅ конструкции switch, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΎ оказалось Π±Ρ‹ послС Π²Ρ‹Π·ΠΎΠ²Π° break. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ break ΠΈ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ default, Π±Π΅Π· практичСской ΠΏΠΎΠ»ΡŒΠ·Ρ‹, просто Ρ€Π°Π΄ΠΈ «Сдинства стиля».

Команда switch обСспСчиваСт ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ синтаксис Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΉ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), Π½ΠΎ для Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ int ΠΈΠ»ΠΈ char. Если, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° являСтся строка ΠΈΠ»ΠΈ вСщСствСнноС число, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° switch Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚. ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ if-else.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ английскиС Π±ΡƒΠΊΠ²Ρ‹. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° опрСдСляСт, гласныС ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ согласныС:

//: control/VowelsAndConsonants.java // ДСмонстрация конструкции switch, import java.util.*,

import static net.mindview.util.Print *;

public class VowelsAndConsonants {

public static void main(String[] args) { Random rand = new Random(47); for(int i = 0: i < 100; i++) {

int с = rand.nextInt(26) + 'a'; printnb((char)c + ", " + с + ": "); switch(c) {

case 'a': case 'e': case * i": case 'ΠΎ':

case 'u': Ρ€ΠΏΠΏΠΈ"гласная"); break;

case 'y':

case V: print ("Условно гласная"); break;

default: Ρ€ΠΏΠΏΠΈ"согласная");

}

}

}

} /* Output: y, 121: Условно гласная n, 110: согласная z, 122: согласная

b, 98: согласная

Π³, 114: согласная n, 110: согласная

Ρƒ. 121: Условно гласная

Π΄. 103: согласная

c. 99: согласная f, 102: согласная ΠΎ, 111: гласная

w, 119: Условно гласная z. 122: согласная

*///:-

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Random.nextlnt(26) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 26, для получСния символа Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра остаСтся ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ смСщСниС 'Π°'. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π² апострофах Π² сСкциях case Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой цСлочислСнныС значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для сравнСния.

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

int с = rand.nextInt(26) + 'а',

ΠΌΠ΅Ρ‚ΠΎΠ΄ rand.nextlnt() Π²Ρ‹Π΄Π°Π΅Ρ‚ случайноС число int ΠΎΡ‚ 0 Π΄ΠΎ 25, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π·Π°Ρ‚Π΅ΠΌ прибавляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 'Π°'. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ символ Π° автоматичСски прСобразуСтся ΠΊ Ρ‚ΠΈΠΏΡƒ int для выполнСния слоТСния.

Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти с Π² символьном Π²ΠΈΠ΄Π΅, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Ρ‚ΠΈΠΏΡƒ char; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π² числовом Π²ΠΈΠ΄Π΅.

РСзюмС

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ являСтся «нСбСзопасноС» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

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

Π’ Π‘++ появилось понятиС конструктора β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π² Java; ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π² Java Π΅ΡΡ‚ΡŒ сборщик мусора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски освобоТдаСт рСсурсы, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСстаСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ вопросы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² Java.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ

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