๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Java/์ž๋ฐ”์˜ ์ •์„

4์ฃผ์ฐจ: ์ œ์–ด๋ฌธ

by oliviarla 2022. 10. 1.
 
์ œ์–ด๋ฌธ(control statement)
- ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฌธ์žฅ์„ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฌธ์žฅ์„ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๋“ฑ์˜ ํ•„์š”์„ฑ์— ์˜ํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ๋ฐ”๊พธ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ฌธ์žฅ
- ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์ด ํ•ด๋‹น๋จ

์„ ํƒ๋ฌธ

์กฐ๊ฑด๋ฌธ

์กฐ๊ฑด์‹์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์‹คํ–‰ํ•  ๋ฌธ์žฅ์ด ๋‹ฌ๋ผ์ ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

- if๋ฌธ

if(์กฐ๊ฑด์‹) {
	// ์กฐ๊ฑด์‹์ด true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ bool ํƒ€์ž…์ด์–ด์•ผ ํ•จ

๋ธ”๋Ÿญ
- ๊ด„ํ˜ธ {}๋กœ ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์€  ๊ฒƒ
- ๋ฌธ์žฅ์ด ํ•œ ์ค„ ๋ฟ์ด๋ฉด ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ด„ํ˜ธ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

- if-else๋ฌธ

if(์กฐ๊ฑด์‹) {
	// ์กฐ๊ฑด์‹์ด true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
} else {
	// ์กฐ๊ฑด์‹์ด false์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

if์™€ else ๋‘ ๋ธ”๋Ÿญ ์ค‘ ๋ฐ˜๋“œ์‹œ ํ•œ ๋ธ”๋Ÿญ์˜ ๋‚ด์šฉ๋งŒ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ, ๋‘ ๋ธ”๋Ÿญ์˜ ๋‚ด์šฉ์ด ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.

 

- if-else if๋ฌธ

์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์…‹ ์ด์ƒ์ผ ๋•Œ, ํ•œ ๋ฌธ์žฅ์— ์—ฌ๋Ÿฌ ์กฐ๊ฑด์‹์„ ์“ฐ๊ธฐ ์œ„ํ•ด else if ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

if(์กฐ๊ฑด์‹1) {
	// ์กฐ๊ฑด์‹1์ด true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค, ๋ฌธ์žฅ๋“ค ์ˆ˜ํ–‰ ํ›„ if-else if๋ฌธ ์ „์ฒด ์ข…๋ฃŒ
} else if(์กฐ๊ฑด์‹2) {
	// ์กฐ๊ฑด์‹2๊ฐ€ true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค, ๋ฌธ์žฅ๋“ค ์ˆ˜ํ–‰ ํ›„ if-else if๋ฌธ ์ „์ฒด ์ข…๋ฃŒ
} else if(์กฐ๊ฑด์‹3) {
	// ์กฐ๊ฑด์‹3์ด true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค, ๋ฌธ์žฅ๋“ค ์ˆ˜ํ–‰ ํ›„ if-else if๋ฌธ ์ „์ฒด ์ข…๋ฃŒ
} else {
	// ์œ„์˜ ๋ชจ๋“  ์กฐ๊ฑด์‹์ด false์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

 

- ์ค‘์ฒฉ if๋ฌธ

if ๋ฌธ ๋‚ด๋ถ€์— ๊ณ„์†ํ•ด์„œ if๋ฌธ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์ค‘์ฒฉ if๋ฌธ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

if(์กฐ๊ฑด์‹1) {
	// ์กฐ๊ฑด์‹์ด true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
    if(์กฐ๊ฑด์‹2) {
    	// ์กฐ๊ฑด์‹1, ์กฐ๊ฑด์‹2๊ฐ€ ๋ชจ๋‘ true์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
    }
} else {
	// ์กฐ๊ฑด์‹1์ด false์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

 

์„ ํƒ๋ฌธ

- switch๋ฌธ

switch (์กฐ๊ฑด์‹) {
	case ๊ฐ’1:
		// ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’1๊ณผ ๋™์ผํ•  ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
		// break ์„ ์–ธ ์‹œ switch๋ฌธ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Œ
	case ๊ฐ’2:
		// ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’2๊ณผ ๋™์ผํ•  ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
		// break ์„ ์–ธ ์‹œ switch๋ฌธ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Œ
    //...
	default:
		// ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์™€ ๋™์ผํ•œ case๋ฌธ์ด ์—†์„ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}
  • ๋‹จ ํ•˜๋‚˜์˜ ์กฐ๊ฑด์‹์œผ๋กœ ๋งŽ์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋™์ž‘ ํ๋ฆ„
    • 1) (์กฐ๊ฑด์‹) ๊ณ„์‚ฐ
    • 2) ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” case๋ฌธ์œผ๋กœ ์ด๋™
    • 3) case๋ฌธ์˜ ์•„๋ž˜์˜ ๋ฌธ์žฅ๋“ค ์ˆ˜ํ–‰
    • 4) break ๋˜๋Š” switch๋ฌธ์˜ ๋์„ ๋งŒ๋‚˜๋ฉด switch๋ฌธ ์ข…๋ฃŒ
  • default๋ฌธ: ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ ์™€ ์ผ์น˜ํ•˜๋Š” case๋ฌธ์ด ์—†์„ ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋˜๋Š” ๋ถ€๋ถ„
  • ์ฃผ์˜ํ•  ์ 
    • case๋ฌธ ๋์— break๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํ•˜์œ„์— ์žˆ๋Š” ๋ชจ๋“  case๋ฌธ ๋ฌธ์žฅ๋“ค์ด ์‹คํ–‰๋˜๋ฏ€๋กœ, ์กฐ๊ฑด์— ๋งž๋Š” case๋ฌธ๋งŒ ์‹คํ–‰์‹œํ‚ค๋ ค๋ฉด break๋ฌธ์„ ์žŠ์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค!
    • switch๋ฌธ์˜ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜ ํ˜น์€ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•œ๋‹ค.
    • case๋ฌธ์˜ ๊ฐ’์€ ์ •์ˆ˜/๋ฌธ์ž์—ด/๋ฌธ์ž ์ƒ์ˆ˜๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค.
  • ์ค‘์ฒฉ switch๋ฌธ
switch (์กฐ๊ฑด์‹) {
	case ๊ฐ’1:
		switch(์กฐ๊ฑด์‹2) {
        	case ๊ฐ’2:
            	//์กฐ๊ฑด์‹1 ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’1์ด๊ณ  ์กฐ๊ฑด์‹2 ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’2์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
        	case ๊ฐ’3:
            	//์กฐ๊ฑด์‹1 ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’1์ด๊ณ  ์กฐ๊ฑด์‹2 ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’3์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
        }
        break;
	case ๊ฐ’4:
		// ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’4๊ณผ ๋™์ผํ•  ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
        break;
    //...
	default:
		// ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์™€ ๋™์ผํ•œ case๋ฌธ์ด ์—†์„ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

๋ฐ˜๋ณต๋ฌธ

for๋ฌธ

for (์ดˆ๊ธฐํ™”;์กฐ๊ฑด์‹;์ฆ๊ฐ์‹) {
	//์กฐ๊ฑด์‹์ด true์ผ ๋•Œ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ๋“ค
}
  • ๋™์ž‘ ํ๋ฆ„
    • 1) ์ดˆ๊ธฐํ™” ์ˆ˜ํ–‰
    • 2) ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ผ๋ฉด
    • 3) ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ ์ˆ˜ํ–‰ ํ›„ ์ฆ๊ฐ์‹ ์ˆ˜ํ–‰
    • 4) 2)~3) ๋ฐ˜๋ณต
  • ์ดˆ๊ธฐํ™”
    • ๋ฐ˜๋ณต๋ฌธ์— ์‚ฌ์šฉ๋  ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
    • ๋‘˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ , ๋ณ€์ˆ˜๋“ค์˜ ํƒ€์ž…์€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ','๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค ex) int i=0, j=0
  • ์กฐ๊ฑด์‹
    • for๋ฌธ์„ ์–ธ์ œ๊นŒ์ง€ ์‹คํ–‰ํ•  ์ง€์— ๋Œ€ํ•œ ์กฐ๊ฑด
    • true/ false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ฆ๊ฐ์‹
    • ๋ฐ˜๋ณต๋ฌธ ์ œ์–ดํ•˜๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฆ๊ฐ์‹œํ‚ค๋Š” ์‹
    • ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ด ๋˜์–ด for๋ฌธ์ด ์ข…๋ฃŒ๋˜๋„๋ก ๋ณ€ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฌดํ•œ๋ฐ˜๋ณตํ•˜๊ธฐ
    • for(;;) { .. } ์ฒ˜๋Ÿผ ์•„๋ฌด๋Ÿฐ ์‹์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌดํ•œ ๋ฐ˜๋ณต๋ฌธ์ด ๋œ๋‹ค.

for each๋ฌธ

for (type name : collection) {
	//๋ฐ˜๋ณตํ•  ๋ฌธ์žฅ
}

๋ฐฐ์—ด ํ˜น์€ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

๊ธฐ์กด for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด/ ์ปฌ๋ ‰์…˜ ์ ‘๊ทผ ์‹œ index๋กœ ์ ‘๊ทผ (ex. arr[i]) ํ•˜์˜€๋˜ ๊ฒƒ์„ ์ข€ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

while๋ฌธ

์กฐ๊ฑด์‹์ด true์ธ ๋™์•ˆ ๋ธ”๋Ÿญ ๋‚ด์˜ ๋ฌธ์žฅ ๋ฐ˜๋ณตํ•˜๊ณ , false๊ฐ€ ๋˜๋ฉด ์ข…๋ฃŒ

while (์กฐ๊ฑด์‹) {
	// ์กฐ๊ฑด์‹์ด true์ธ ๋™์•ˆ ๋ฐ˜๋ณตํ•  ๋ฌธ์žฅ
}

do-while๋ฌธ

while๋ฌธ์€ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ธ”๋Ÿญ์ด ํ•œ ๋ฒˆ๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, do-while๋ฌธ์€ ์ตœ์†Œ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค.

do {
	// ์กฐ๊ฑด์‹์ด true์ธ ๋™์•ˆ ๋ฐ˜๋ณตํ•  ๋ฌธ์žฅ
} while (์กฐ๊ฑด์‹);

break๋ฌธ

์ž์‹ ์ด ํฌํ•จ๋œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.

์ฃผ๋กœ if๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚˜๋„๋ก ํ•œ๋‹ค.

continue๋ฌธ

๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ˜๋ณต์ด ์ง„ํ–‰๋˜๋Š” ์ค‘ continue๋ฌธ์„ ๋งŒ๋‚˜๋ฉด continue ์ดํ›„์˜ ๋ฐ˜๋ณต ๋ฌธ์žฅ๋“ค์€ ๋ฌด์‹œํ•˜๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

์ด๋ฆ„ ๋ถ™์€ ๋ฐ˜๋ณต๋ฌธ

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ˜๋ณต๋ฌธ์ด ์ค‘์ฒฉ๋œ ๊ฒฝ์šฐ break๋ฌธ์œผ๋กœ ๋ชจ๋“  ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค.

์ด ๋•Œ break/continue๋ฌธ์— ์ด๋ฆ„์„ ์ง€์ •ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค.

Loop1: for (int i=0;i<10;i++) {
	//์กฐ๊ฑด์‹์ด true์ผ ๋•Œ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ๋“ค
    for (int j=0;j<10;j++) {
    	System.out.printf("i: %s, j: %s \n", i, j);
    	if (j==5) {
        	break Loop1;
        }
    }
}

 

๋Œ“๊ธ€