๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“— Book/์ž๋ฐ”์˜ ์ •์„

4-1์žฅ ์กฐ๊ฑด๋ฌธ

by hyeon-z 2023. 3. 29.

 

1. if๋ฌธ

๐Ÿ’ก๋งŒ์ผ(if) ์กฐ๊ฑด์‹์ด ์ฐธ(true)์ด๋ฉด ๊ด„ํ˜ธ { } ์•ˆ์˜ ๋ฌธ์žฅ๋“ค์„ ์ˆ˜ํ–‰ํ•˜๋ผ

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

 

์กฐ๊ฑด์‹

 

์ผ๋ฐ˜์ ์œผ๋กœ ๋น„๊ต ์—ฐ์‚ฐ์ž์™€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

90 <= x && x <= 100  // ์ •์ˆ˜ x๊ฐ€ 90์ด์ƒ 100์ดํ•˜์ผ ๋•Œ
str.equals("yes")  // ๋ฌธ์ž์—ด str์˜ ๋‚ด์šฉ์ด "yes"์ผ ๋•Œ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„)
str.equalsIgnoreCase("yes")  // ๋ฌธ์ž์—ด str์˜ ๋‚ด์šฉ์ด "yes"์ผ ๋•Œ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X)

 

๋ธ”๋ก()

 

์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ๋Š”๋‹ค.

๋ธ”๋ก ๋‚ด์˜ ๋ฌธ์žฅ์ด ํ•˜๋‚˜๋ฟ์ธ ๊ฒฝ์šฐ ๊ด„ํ˜ธ{}๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉด ์ƒ๋žตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

if(score > 60) System.out.println ("ํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค.");

if(score > 60) {
		System.out.println ("ํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค.");
}

⇒ ์ƒˆ๋กœ์šด ๋ฌธ์žฅ๋“ค์ด ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ ๊ด„ํ˜ธ{}๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

2. if-else๋ฌธ

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

 

2๊ฐœ์˜ if๋ฌธ vs if-else๋ฌธ

 

if (input == 0) {
	...
} 
if (input != 0) {
	...
}

2๊ฐœ์˜ ์กฐ๊ฑด์‹

 

if (input == 0) {
	...
} else {
	...
}

1๊ฐœ์˜ ์กฐ๊ฑด์‹

 

⇒ if-else๋ฌธ์ด ๋” ํšจ์œจ์ ์ด๋‹ค!

 

๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

 

if(score > 60) 
	System.out.printin ("ํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค.");
else
	System.out.printin ("๋ถˆํ•ฉ๊ฒฉ์ž…๋‹ˆ๋‹ค.");

 

3. if-else if๋ฌธ

if๏ผˆ์กฐ๊ฑด์‹1๏ผ‰ {
		// ์กฐ๊ฑด์‹1์˜ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค์„ ์ ๋Š”๋‹ค .
} else if ๏ผˆ์กฐ๊ฑด์‹2๏ผ‰ {
		// ์กฐ๊ฑด์‹2์˜ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค์„ ์ ๋Š”๋‹ค .
} else if ๏ผˆ์กฐ๊ฑด์‹3๏ผ‰ { // ์—ฌ๋Ÿฌ ๊ฐœ์˜ else if๋ฅผ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
		// ์กฐ๊ฑด์‹3์˜ ์—ฐ์‚ฐ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค์„ ์ ๋Š”๋‹ค .
} else { // ๋งˆ์ง€๋ง‰์—๋Š” ๋ณดํ†ต else๋ธ”๋Ÿญ์œผ๋กœ ๋๋‚˜๋ฉฐ, else๋ธ”๋Ÿญ์€ ์ƒ๋žต๊ฐ€๋Šฅํ•˜๋‹ค.
		// ์œ„์˜ ์–ด๋А ์กฐ๊ฑด์‹๋„ ๋งŒ์กฑํ•˜์ง€ ์•Š์„ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค์„ ์ ๋Š”๋‹ค .
}

 

if-if๋ฌธ vs if-else-if-else๋ฌธ

 

if-else-if-else๋ฌธ

if (score >= 90) {
	grade = 'A';
} else if (score >=80) {
	grade = 'B';
} else if (score >=70) {
	grade = 'C';
} else {
	grade = 'D';
}

 

if-if๋ฌธ

if (score >= 90) {
	grade = 'A';
}
if (80 <= score && score < 90) {
	grade = 'B';
}
if (70 <= score && score < 80) {
	grade = 'C';
}
if (score < 70) {
	grade = 'D';
}

else-if๋ฌธ์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๋Š” ์œ„์˜ ์กฐ๊ฑด์„ ์ค‘๋ณต์œผ๋กœ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์ง„๋‹ค.

 

4. ์ค‘์ฒฉ if๋ฌธ

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

 

๊ด„ํ˜ธ์˜ ์ค‘์š”์„ฑ

 

if (num >= 0)
    if (num != 0)
        sign = '+';
else
	sign = '_';
if (num >= 0) {
    if (num != 0) {
    	sign = '+';
    } else {
    	sign = '-';	
    }
}

๊ด„ํ˜ธ๊ฐ€ ์ƒ๋žต๋˜๋ฉด else๋ธ”๋ก์€ ๊ฐ€๊นŒ์šด if๋ฌธ์— ์†ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด else๋ฌธ์ด ๋ฐ”๊นฅ if๋ฌธ๊ณผ ์„ธํŠธ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ ๋™์ž‘์€ ์˜ค๋ฅธ์ชฝ ์ฝ”๋“œ์™€ ๊ฐ™๋‹ค.

 

5. switch๋ฌธ

switch๋ฌธ ์ˆœ์„œ

 

1. ์กฐ๊ฑด์‹์„ ๊ณ„์‚ฐ

2. ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” case๋ฌธ์œผ๋กœ ์ด๋™

3. ์ดํ›„์˜ ๋ฌธ์žฅ๋“ค ์ˆ˜ํ–‰

4. break๋ฌธ์ด๋‚˜ switch๋ฌธ์˜ ๋์„ ๋งŒ๋‚˜๋ฉด switch๋ฌธ ์ „์ฒด๋ฅผ ๋น ์ ธ๋‚˜๊ฐ

switch (์กฐ๊ฑด์‹) ๏ฝ›
	case ๊ฐ’1 :
		// ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’1๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
		break;
	case ๊ฐ’2 :
		// ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ’2์™€ ๊ฐ™์„ ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
		break; // switch๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.
	default :
    		// ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” case๋ฌธ์ด ์—†์„ ๋•Œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
}

default๋ฌธ์€ if๋ฌธ์˜ else๋ธ”๋ก๊ณผ ๊ฐ™์€ ์—ญํ• 

๋ณดํ†ต default๋ฌธ์€ ๋งˆ์ง€๋ง‰์— ๋†“๋Š”๋‹ค → ์ด ๊ฒฝ์šฐ break๋ฌธ ์ƒ๋žต ๊ฐ€๋Šฅ

๊ฐ case๋ฌธ์— break๋ฌธ ํ•„์ˆ˜!

 

๊ณ ์˜์ ์œผ๋กœ break๋ฌธ์„ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ

 

switch (level) {
case 3 :
	grantDelete(); // ์‚ญ์ œ๊ถŒํ•œ์„ ์ค€๋‹ค
case 2 :
	grantWrite(); // ์“ฐ๊ธฐ๊ถŒํ•œ์„ ์ค€๋‹ค
case 1 :
	grantRead(); // ์ฝ๊ธฐ๊ถŒํ•œ์„ ์ค€๋‹ค
}

๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์˜ ๋“ฑ๊ธ‰(level)์„ ์ฒดํฌํ•˜์—ฌ, ๋“ฑ๊ธ‰์— ๋งž๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ

์ œ์ผ ๋†’์€ ๋“ฑ๊ธ‰์ธ 3์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ์‚ญ์ œ, ์“ฐ๊ธฐ, ์ฝ๊ธฐ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๊ฐ€์ง„๋‹ค.

 

switch๋ฌธ์˜ ์ œ์•ฝ ์กฐ๊ฑด

 

1. switch๋ฌธ์˜ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜ ๋˜๋Š” ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•œ๋‹ค.

2. case๋ฌธ์˜ ๊ฐ’์€ ์ •์ˆ˜ ์ƒ์ˆ˜, ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด, ๋ฌธ์žํ˜• ๋ฆฌํ„ฐ๋Ÿด๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

int num, result;
final int ONE = 1;

switch(result) {
	case '1':    // ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด(์ •์ˆ˜ ์ƒ์ˆ˜ 49์™€ ๋™์ผ) OK
	case ONE:    // ์ •์ˆ˜ ์ƒ์ˆ˜ OK
	case "YES":  // ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด OK
	case num:    // ๋ณ€์ˆ˜ ๋ถˆ๊ฐ€ ERROR
	case 1.0:    // ์‹ค์ˆ˜ ๋ถˆ๊ฐ€ ERROR
	...
}

 

์—ฌ๋Ÿฌ case๋ฌธ

 

case 3:
case 4:
case 5:
	System.out.println ("์ •๋‹ต์ž…๋‹ˆ๋‹ค");
	break;
case 3: case 4: case 5:
	System.out.println ("์ •๋‹ต์ž…๋‹ˆ๋‹ค");
	break;

case๋ฌธ์€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์จ๋„ ๋˜๊ณ  ํ•œ ์ค„์— ๋ถ™์—ฌ์„œ ์จ๋„ ๋œ๋‹ค.

 

โœ…Math.random() ์‚ฌ์šฉ๋ฒ•

โ“ 1~3๊นŒ์ง€์˜ ๋žœ๋คํ•œ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

Math.random()์˜ ๋ฒ”์œ„๋Š” 0.0 ≤ Math.random() < 1.0์ด๋‹ค.

 

1. ๊ฐ ๋ณ€์— 3์„ ๊ณฑํ•œ๋‹ค.

0.0 * 3 ≤ Math.random() * 3 < 3.0

 

2. ๊ฐ ๋ณ€์„ intํ˜•์œผ๋กœ ์น˜ํ™˜ํ•œ๋‹ค.

(int) 0.0  ≤ (int)(Math.random() * 3) < (int)3.0
-> 0 ≤ (int)(Math.random() * 3) < 3

 

3. ๊ฐ ๋ณ€์— 1์„ ๋”ํ•œ๋‹ค.

1 ≤ (int)(Math.random() * 3) + 1 < 4

 

switch๋ฌธ์˜ ์ค‘์ฒฉ

 

break๋ฌธ ๋นผ๋จน์ง€ ์•Š๋„๋ก ์ฃผ์˜!

switch(gender) {
	case '1': case '3':
		switch(gender) {
			case '1':
				System.out.println("๋‹น์‹ ์€ 2000๋…„ ์ด์ „์— ์ถœ์ƒํ•œ ๋‚จ์ž์ž…๋‹ˆ๋‹ค.");
			break;
			case '3':
				System.out.println("๋‹น์‹ ์€ 2000๋…„ ์ดํ›„์— ์ถœ์ƒํ•œ ๋‚จ์ž์ž…๋‹ˆ๋‹ค.");
		}
		break; // ํ•ด๋‹น break๋ฌธ์„ ๋นผ๋จน์ง€ ์•Š๋„๋ก ์ฃผ์˜
	case '2': case '4':
		switch(gender) {
			case '2':
				System.out.println("๋‹น์‹ ์€ 2000๋…„ ์ด์ „์— ์ถœ์ƒํ•œ ์—ฌ์ž์ž…๋‹ˆ๋‹ค.");
				break;
			case '4':
				System.out.println("๋‹น์‹ ์€ 2000๋…„ ์ดํ›„์— ์ถœ์ƒํ•œ ์—ฌ์ž์ž…๋‹ˆ๋‹ค.");
				break;
		}	 
		break;
	default:
		System.out.println("์œ ํšจํ•˜์ง€ ์•Š์€ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.");
}

 

 

Reference

์ž๋ฐ”์˜ ์ •์„ - ๋‚จ๊ถ ์„ฑ

๋Œ“๊ธ€