Search
Duplicate

Loop

ํƒœ๊ทธ
๋ฐ˜๋ณต๋ฌธ
๊ตฌ๋ถ„
์ฝ”๋ฐ์นด๋ฐ๋ฏธ
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 ์—๋Ÿฌ๋ฅผ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.