๋ชจ๋ ๋๋ฃ๋ค๊ณผ ๋จ์ํ ๊ด์ฌ์ด ์๋ ์ฌ๋๋ค์๊ฒ ์๋
ํ์ธ์.
์ค๋ ์ฐ๋ฆฌ๋ break ์ฐ์ฐ์์ ๊ฐ์ Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธฐ๋ฅ์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ์ ํ ์ฐ์ฐ์ ์ฃผ์ ์ ๋ํ ์ฒซ ๋ฒ์งธ ๊ธฐ์ฌ์ด๋ฏ๋ก ๋ง์์ ๋์๋ฉด ๋ ์์ฑํด ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด ๊ธฐ์ฌ๋ ์ฃผ๋ก ์ด๋ณด ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๊ณ ๊ธ ํ์๋ค์ ์ฌ๊ธฐ์์ ์ค์ค๋ก ์๋ก์ด ๊ฒ์ ์ฐพ์ง ๋ชปํ ์๋ ์๋ค๋ ์ ์ ์ฆ์ ์ง์ ํ๊ณ ์ถ์ต๋๋ค. ์, ๊ฐ์. Java์๋ ํ๋ก๊ทธ๋จ ๋ช
๋ น์ด ์คํ๋๋ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค: ์ ํ ๋ฌธ๊ณผ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ. ์๋ฐ์๋ ์ธ ๊ฐ์ง ์ ํ ์ฐ์ฐ์(break, continue, return)๊ฐ ์์ต๋๋ค. ์ค๋์ ์ด์์๋ฅผ ์์ธํ ์ดํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค
break
. ์์ธ ์ฒ๋ฆฌ๋ ์ด ๊ธฐ์ฌ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ๊ด๋ฒ์ํ ์ฃผ์ ์
๋๋ค. java์์๋ break๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด 3๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ break
๋ฃจํ๋ฅผ ์กฐ๊ธฐ์ ์ข
๋ฃํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
public class SimpleExample {
public static void main(String[] args) {
findNumberInLoop(3);
}
public static void findNumberInLoop(int number){
for (int i = 0; i < 10; i++) {
if (i == number) {
break;
}
System.out.println(i);
}
System.out.println("cycle was finished");
}
}
์ด ์๋ ๋ค์์ ํ์ํฉ๋๋ค:
1
2
cycle was finished
์ด๋ ๋ฃจํ ์นด์ดํฐ๊ฐ ์ ๋ฌ๋ ๋งค๊ฐ๋ณ์ ์ฆ ์ซ์ 3๊ณผ i
๋์ผํด์ง๋ฉด ๋ฃจํ ์คํ์ด ์กฐ๊ธฐ ์ข
๋ฃ๋๋ค๋ ์๋ฏธ์
๋๋ค. number
ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ์ค์ฒฉ ๋ฃจํ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์์ชฝ ๋ฃจํ์์๋ง ์ถ๋ ฅ์ ์ค๋จํฉ๋๋ค. ์:
public class SimpleExample {
public static void main(String[] args) {
findNumberInLoop(3);
}
public static void findNumberInLoop(int number){
for(int i = 0; i < 5; i++) {
for (int j =0; j < 10; j++) {
if(j == number) {
break;
}
System.out.print(j);
}
System.out.println();
}
System.out.println("cycles was finished");
}
}
์ด ์์์๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
012
012
012
012
012
cycles was finished
์์ ์์ ๋ณผ ์ ์๋ฏ์ด ๋ด๋ถ ๋ฃจํ๋ 3๋ฒ(ํ๋ผ๋ฏธํฐ number
)์์ ๋งค๋ฒ ์ค๋จ๋๊ณ , ์ธ๋ถ ๋ฃจํ๋ ์๋ํ ๋๋ก 5๋ฒ ์คํ๋ฉ๋๋ค. Java์์๋ ๋ฃจํ ๋ด์์ ๋ ์ด์์ break ๋ฌธ์ ์ฌ์ฉํ ์ ์์ง๋ง ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ๊ตฌ์กฐ๊ฐ ํฌ๊ฒ ์ ํ๋๋ฏ๋ก ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๋ ๋ฒ์งธ ์ฉ๋๋ break
Branch์ ๋ช
๋ น๋ฌธ ์คํ์ ์ค๋จํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค switch
. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
public class SimpleExample {
public static void main(String[] args) {
square(2);
}
public static void square(int number){
switch (number){
case 1:
System.out.println(number*number);
break;
case 2:
System.out.println(number*number);
break;
case 3:
System.out.println(number*number);
break;
}
System.out.println("after switch");
}
}
์ด ์์ ๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค.
4
after switch
break ๋ฌธ์ ์ ์ฒด ๋ธ๋ก ๋ค์์ ์ค๋ ์ฝ๋์ ์ ์ด๋ฅผ ์ ๋ฌํ์ต๋๋ค switch
. ์ด ์์์ break
in์ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ :switch
public class SimpleExample {
public static void main(String[] args) {
square(2);
}
public static void square(int number){
switch (number){
case 1:
System.out.println(number*number);
case 2:
System.out.println(number*number);
case 3:
System.out.println(number*number);
}
System.out.println("after switch");
}
}
์ถ๋ ฅ์ ์์๊ณผ ๋ค๋ฆ
๋๋ค.
4
4
after switch
์ด๋ ๋ธ๋ก์ด ์คํ๋ ํ case 2
ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ ํ์ ์ผ์ด์ค ๋ธ๋ก์ ๊ณ์ ์คํํ์ฌ ํด๋น ์ถ๋ ฅ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ์ต๋๋ค. ๋๋ก๋ ์ด์์์ ์ด ๊ธฐ๋ฅ์ด switch
์ฐ๋ฆฌ์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
public class SimpleExample {
public static void main(String[] args) {
compare(2);
compare(7);
compare(12);
}
public static void compare(int number){
switch (number){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("number is less than 5 or equal 5");
break;
case 6:
case 7:
case 8:
case 9:
System.out.println("number is greater than 5");
break;
default:
System.out.println("number is less than 0 or greater than 9");
}
System.out.println("after switch");
}
}
์ด ํ๋ก๊ทธ๋จ์ ์ฃผ์ด์ง ์ซ์๋ฅผ ์ซ์ 5์ ๋น๊ตํ๊ณ ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
after switch
number is greater than 5
after switch
number is less than 0 or greater than 9
after switch
๋ฉ์๋๊ฐ ์ฒ์ ํธ์ถ๋๋ฉด ์ฐ์ฐ์๋ switch
์ ์ด๊ถ์ ์ฐ์ฐ์์๊ฒ ์ ๋ฌํ case 2
๋ค์ break
์ ์ฐ์ฐ์์๊ฒ ์ ๋ฌํฉ๋๋ค case 5
. ๋ ๋ฒ์งธ ํธ์ถ์ ์ฒซ ๋ฒ์งธ ํธ์ถ๊ณผ ์ ์ฌํ์ง๋ง c ๋ก ์์ํฉ๋๋ค case 7
. ์ธ ๋ฒ์งธ ํธ์ถ์์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํฉํ ๊ฐ์ ์ฐพ์ง ๋ชปํ์ฌ ์ฐ์ฐ์๊ฐ ์คํ๋ฉ๋๋ค default
. ์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ์ C ์ฐ์ฐ์ break
๋์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ์ด๋ฅผ ์ํด ๋ ์ด๋ธ์ ์ฌ์ฉ ํ์ฌ ํธ์ถ๋๋ goto
ํน์ํ ํํ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํฉ๋๋ค . ์ด ์์์ ๋ ์ด๋ธ์ฒ๋ผ ๋ณด์
๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ ๋ธ๋ก ์์ ์ค๋ Java ๋ค์์คํ์ด์ค์ ์ ์ ํ ์ด๋ฆ์
๋๋ค. ๋ํ ์ด ์ฝ๋ ๋ธ๋ก์ ๋ ์ด๋ธ๊ณผ ํจ๊ป ์ ์ฉํ ํ์๋ ํด๋น ๋ ์ด๋ธ์ด ์๋ ๋ธ๋ก ๋ค์ ์์น๋ถํฐ ์ฝ๋๊ฐ ๊ณ์ ์คํ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. break
break
break ะผะตัะบะฐ;
break
public class SimpleExample {
public static void main(String[] args) {
howWeUseLabels(true);
System.out.println();
howWeUseLabels(false);
}
public static void howWeUseLabels(boolean bool) {
firstBlock:{
secondBlock:{
thirdBlock:{
System.out.println("We will see it always");
if(bool) {
break secondBlock;
}
System.out.println("We won't see it if bool == true");
}
System.out.println("We won't see it if bool == true");
}
System.out.println("We will see it always");
}
}
}
์ด ์์์๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค.
We will see it always
We will see it always
We will see it always
We won't see it if bool == true
We won't see it if bool == true
We will see it always
์ฒซ ๋ฒ์งธ ๋ฉ์๋ ํธ์ถ ํ ์ฐ์ฐ์๋ break
๋ธ๋ก ๋์ผ๋ก ์ ์ด๋ฅผ ์ ๋ฌํ์ฌ ๋ฐ ๋ฅผ secondBlock
์ข
๋ฃํ๊ณ ๋์์ ๋ค๋ฅธ ์ฐ์ฐ์๋ฅผ ์คํํฉ๋๋ค . ๋ ๋ฒ์งธ ํตํ ํ์๋ ๋ชจ๋ ํ์ ์ด ํ๋ฉด์ ํ์๋ฉ๋๋ค. ๋ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์ฃผ๊ธฐ๋ฅผ ๋ํ๋ผ ์๋ ์์ต๋๋ค. ๋ ์ด๋ธ์ด ๊ฐ๋ฆฌํค๋ ์ฝ๋ ๋ธ๋ก ๋ด๋ถ์์๋ง ๋ ์ด๋ธ๋ก ์ด๋ํ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฌํ ์ฝ๋๋ ์ปดํ์ผ๋์ง ์์ต๋๋ค. secondBlock
thirdBlock
println()
firstBlock
public class SimpleExample {
public static void main(String[] args) {
label:{
System.out.println("inside label");
}
if(true) {
break label;
}
System.out.println("This is error");
}
}
์ฝ๋ ๋ฐ ๋ช
๋ น๋ฌธ์ ์ฒญ๊ฒฐ์ฑ์ ๋ํ ์ฐธ๊ณ ์ฌํญ break
: ๋ช
๋ น๋ฌธ์ ๋งค์ฐ ์ ์คํ๊ฒ ์ฌ์ฉํ๋ผ๋ ์กฐ์ธ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์๋ค์ฌ์ง๊ณ ์์ต๋๋ค break
. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด break
๋ฃจํ๋ฅผ ์ดํดํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๊ณ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฃจํ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๋ฉฐ ํด๋น ์์
์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์ดํดํด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ ์งง์ ๋ฃจํ์์๋ ๋ ์์ ์๊ฒ ์ฌ์ฉํ ์ ์๊ณ ๊ธธ๊ณ ๊น๊ฒ ์ค์ฒฉ๋ ๋ฃจํ์์๋ ๋ ์ฃผ์ํด์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝํ์ ๊ท์น์ด ์์ต๋๋ค break
. ์ด๋ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ ๋์ด๊ณ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ๋ ๊ฒ์ ๋ณต์กํ๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์
๋๋ค. ์์์ ์ด ๊ฒ์ฒ๋ผ, break
์ฝ๋ โโ์ ๋ฐ์ ๊ฑธ์ณ ๋ง์ ์์ .๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ ์ด ์ ๊ทธ๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋์ง ์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๋ฃจํ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ฃจํ๋ก ๋๋์ด ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. break
๋ฅผ ๋์ ํ์ฌ ๋ ์ด๋ธ์ ์ฌ์ฉํ ๋๋ goto
์ฝ๋ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง๋ฏ๋ก ์ฃผ์ํ์ญ์์ค . ์ด๊ฒ์ด ์ ๊ฐ ์ค๋ Java์ ์ฐ์ฐ์์ ๋ํด ๋ง์๋๋ฆฌ๊ณ ์ถ์ ์ ๋ถ์
๋๋ค break
. ๋๋ ๊ฑด์ค์ ์ธ ๋นํ์ ๊ธฐ๊บผ์ด ์ํ ๊ฒ์ด๋ฉฐ, ๊ด์ฌ์ด ์์ผ์๋ฉด ์ฐ์ฐ์ continue
๋ฐ ์ ๋ํ ์ฐ์ ๊ธ์ ์ธ ์ค๋น๋ ๋์ด ์์ต๋๋ค.return
GO TO FULL VERSION