return, continue, break
๋ฐ๋ณต๋ฌธ ์์์ return ๊ณผ break ์ ์ฐจ์ด๋ฅผ ์์๋ณด์
Return
๋ฐ๋ณต๋ฌธ๋ง ํ์ถํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ํด๋น ๋ฐ๋ณต๋ฌธ์ด ์กด์ฌํ๋ ๋ฉ์๋ ์์ฒด๊ฐ ์ข
๋ฃ ๋๋ค. ๋ท ์ค์ ์ฝ๋๊ฐ ๋ ์์ด๋ ์คํ์ด ๋์ง ์์ ์ฑ ์ข
๋ฃ๊ฐ ๋๋ค.
void ํ์ ๋ฉ์๋: return;
์๋ฃํ์ด ๋ช
์๋์ด ์๋ ํํ์ ๋ฉ์๋: return [์๋ฃํ] [๋ฆฌํดํ ๊ฐ];
Break
๊ฐ์ฅ ํ์์ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์ด๋ ๋ ์ฌ์ฉํ๋ค. ์ด๋ ๋ฃจํ๊ฐ ๋ชจ๋ ๋๋์ง ์์๋ ๋ฐ๋ณต๋ฌธ์ฅ์ ํ์ถํ๋ค.
continue
๋ฐ๋ณต๋ฌธ์ด ์งํ๋๋ฉด์ ํด๋น๋๋ ๊ฐ์ด ๋์ค๋ฉด ๋ฐ๋ณต๋ฌธ์ ๊ฑด๋ ๋ด๋ค.
For-each loops
for-each ๋ฐ๋ณต๋ฌธ์ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ๋ค.
for([์๋ฃํ] [์์๋ช
]:[์์๋ฅผ ๋ด๋ ๋ฆฌ์คํธ๋ช
]){}
: ๋ โinโ ์ผ๋ก ์ฝ์ผ๋ฉด ๋๋ค. ์ ์์ ์๋ ์์๋ค์ด ํ์์ ์๋ ๋ฆฌ์คํธ์ ์๋ค ๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค. ๋ํ ๊ด๋ก๋ก ๋จ์ํ:๋ณต์ํ ์ผ๋ก ์ฐ๊ธฐ๋๋ฌธ์ ์ด์ ์ ์์๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ณต๋ฌธ์ ์๋ ์์ ๋ฅผ ๋ณด๋ฉด ๋ ๋ช
ํํ ์ดํด๊ฐ ๊ฒ์ด๋ค.
[์์ ์ฝ๋]
String[] numbers = {"one", "two", "three"};
for(String number: numbers) {
System.out.println(number);
}
Java
๋ณต์ฌ
Output
One
Two
Three
numbers ๋ผ๋ ๋ฐฐ์ด ์์ ์๋ ์์๋ค์ธ number ๋ฅผ for-each ๋ฐ๋ณต๋ฌธ์ ์จ์ ์ถ๋ ฅํ๋ ์ฝ๋์ด๋ค. for-each ๋ฐ๋ณต๋ฌธ์ ๊ฒฝ์ฐ ๋ฐ๋ณต์ ๋ฒ์๋ฅผ ๋ฐ๋ก ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ์๋ถํฐ ์ฐจ๋ก๋๋ก ์ถ๋ ฅ์ ํ๊ฒ ๋๋ค. Array ๋ ArrayList ์ ๊ฐ์ด ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋์ ๋ํ ํ์ด์ง๋ ๊ฐ์ด ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค
Array ์ ArrayList ์ ๋ํด ์์๋ณด๊ณ ์ถ๋ค๋ฉด?
๊ทธ๋ ๋ค๋ฉด for-each ๋ฌธ์ ์ธ๋ ์๋ก์ด ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์์๊น?
๋ฐ๋ณต๋ฌธ์ ๋ณ์(์์ ์์์์๋ number ๊ฐ ํด๋น!) ์ ์ ๊ฐ์ ๋ฃ์ผ๋ ค๊ณ ํด๋ ๋ฐ๋ณต๋ฌธ์ ๋ชจ๋ ๋ฐ๋ณต์ ๋ํด Array ํน์ ArrayList ์ ๋ณต์ฌ๋ณธ์ด ํ ๋น๋๊ธฐ ๋๋ฌธ์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝ ๋์ง ์๋๋ค.
Removing Elements During Traversal
๋ง์ฝ ArrayList ์ ์์๋ฅผ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ์ง์ฐ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
Removing An Element Usingย while
๋ง์ฝ์ while ์ ์ด์ฉํด์ ์์๋ฅผ ์ง์ฐ๊ณ ์ถ๋ค๋ฉด ์ง์ฐ๊ณ ์ถ์ ์์๋ฅผ ๋ง๋ฌ์ ๋ ์ํ ํ์๋ฅผ ์ฆ๊ฐ์ํค๋ฉด ์๋๋ค ์๋ํ๋ฉด ์ง์ฐ๊ณ ๋๋ฉด ๋ชจ๋ ์์๋ค์ ์์น๊ฐ ์ผ์ชฝ์ผ๋ก ํ์นธ์ฉ ์ด๋ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ ์์๋ฅผ ๋ณด์.
[์์์ฝ๋]
int i = 0; // initialize counter
while (i < lst.size()) {
// if value is odd, remove value
if (lst.get(i) % 2 != 0){
lst.remove(i);
} else {
// if value is even, increment counter
i++;
}
}
Java
๋ณต์ฌ
Removing An Element Usingย for
for ์ ์ด์ฉํด์ ์์๋ฅผ ์ง์ธ ๋๋ ๋น์ทํ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋๋ค. ํ์ง๋ง while๋ฌธ๊ณผ ๋ค๋ฅด๊ฒ for ๋ฌธ์ ๊ฒฝ์ฐ ๋ฐ๋ณต๋ฌธ์ ์กฐ์ ํ๋ ๋ณ์์ ์ฆ๊ฐ(i++) ํน์ ์ฆ๊ฐ(iโ)์ ๋ง์๋๋ก ์กฐ์ ํ ์ ์๋ค. ๊ทธ๋์ ์์ดํ
์ ์ญ์ ํ ๋๋ง๋ค ๋ฐ๋ณต๋ฌธ ์กฐ์ ๋ณ์๋ฅผ ๊ฐ์์ํค๋ ๊ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ๋ค.
[์์์ฝ๋]
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i) == "value to remove"){
// remove value from ArrayList
lst.remove(lst.get(i));
// Decrease loop control variable by 1
i--;
}
}
Java
๋ณต์ฌ
์ฃผ์
for-each ๋ฌธ์ ์ด์ฉํด์ ArrayList ์ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํ๋ ค๊ณ ํ๋ฉด ์ฐ๋ฆฌ๋ ConcurrentModificationException ์๋ฌ๋ฅผ ๋ณด๊ฒ ๋ ๊ฒ์ด๋ค.