๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Backend/Java

[Java]์ œ์–ด๋ฌธ - If~else๋ฌธ & Switch๋ฌธ

by sukii 2023. 11. 28.
๋ฐ˜์‘ํ˜•

๐Ÿค”์ œ์–ด๋ฌธ(Control Statement)

:ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„(์Šค๋ ˆ๋“œThread)์„ ๋ฐ”๊พธ๋Š” ๋ช…๋ น

=> ์กฐ๊ฑด๋ฌธ(if, switch), ๋ฐ˜๋ณต๋ฌธ(for, while), ๊ธฐํƒ€(break, continue, return)

 

1๏ธโƒฃIf๋ฌธ

์กฐ๊ฑด์‹์— ์˜ํ•ด ๋ช…๋ น์„ ์„ ํƒ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ

ํ˜•์‹-1) if(์กฐ๊ฑด์‹) { ๋ช…๋ น; ๋ช…๋ น; ... }

=> ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ(true)์ธ ๊ฒฝ์šฐ ๋ธ”๋Ÿญ({}) ๋‚ด๋ถ€์— ์ž‘์„ฑ๋œ ๋ช…๋ น๋“ค์„ ์‹คํ–‰

=> ๋ธ”๋Ÿญ ๋‚ด๋ถ€์— ์ž‘์„ฑ๋œ ๋ช…๋ น์ด ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ ๋ธ”๋Ÿญ ๊ธฐํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

 

ํ˜•์‹-2) if(์กฐ๊ฑด์‹) { ๋ช…๋ น; ๋ช…๋ น; ... } else { ๋ช…๋ น; ๋ช…๋ น; ... }

=> ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ(๊ฑฐ์ง“ ๋˜๋Š” ์ฐธ)๋กœ ๋ธ”๋Ÿญ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ช…๋ น์„ ์„ ํƒ ์‹คํ–‰

 

ํ˜•์‹-3) if(์กฐ๊ฑด์‹) { ๋ช…๋ น; ๋ช…๋ น; ... } else if(์กฐ๊ฑด์‹) { ๋ช…๋ น; ๋ช…๋ น; ... }

/else if(์กฐ๊ฑด์‹) { ๋ช…๋ น; ๋ช…๋ น; ... } else { ๋ช…๋ น; ๋ช…๋ น; ... }

=> ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ์กฐ๊ฑด์ธ ์ฐธ์ธ ๊ฒฝ์šฐ ๋ธ”๋Ÿญ ๋‚ด๋ถ€์— ์ž‘์„ฑ๋œ ๋ช…๋ น ์‹คํ–‰

=> ๋งˆ์ง€๋ง‰ else ๊ตฌ๋ฌธ์˜ ๋ธ”๋Ÿญ์— ์ž‘์„ฑ๋œ ๋ช…๋ น์€ ๋ชจ๋“  ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ ์‹คํ–‰ - else ์ƒ๋žต ๊ฐ€๋Šฅ

 

์˜ˆ์ œ1

public class IfApp {
	public static void main(String[] args) {
		int su=90;//su์˜ ์ดˆ๊ธฐ๊ฐ’์€ 90
		su=40;//su์˜ ๊ฐ’์„ 40์œผ๋กœ ๋ณ€๊ฒฝ
		
		//๋ณ€์ˆ˜๊ฐ’์ด 50์ด์ƒ์ธ ๊ฒฝ์šฐ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๋„๋ก ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		if(su>=50) {
			System.out.println("su = "+su);
		}

 

=> su์˜ ๊ฐ’์ด 40์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด '50 ์ด์ƒ'์ด๋ผ๋Š” ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ.

 

 

์˜ˆ์ œ2

int score=50;
//๋ณ€์ˆ˜๊ฐ’์ด 60 ์ด์ƒ์ธ ๊ฒฝ์šฐ ํ•ฉ๊ฒฉ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  60 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ ๋ถˆํ•ฉ๊ฒฉ ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		
		/*if(score>=60) {
			System.out.println("[๊ฒฐ๊ณผ]์ ์ˆ˜๊ฐ€ 60์  ์ด์ƒ์ด๋ฏ€๋กœ <ํ•ฉ๊ฒฉ>์ž…๋‹ˆ๋‹ค.");
		}
		
		if(score<60) {
			System.out.println("[๊ฒฐ๊ณผ]์ ์ˆ˜๊ฐ€ 60์  ๋ฏธ๋งŒ์ด๋ฏ€๋กœ <๋ถˆํ•ฉ๊ฒฉ>์ž…๋‹ˆ๋‹ค.");
		}*/
		
		if(score>=60) {
			System.out.println("[๊ฒฐ๊ณผ]์ ์ˆ˜๊ฐ€ 60์  ์ด์ƒ์ด๋ฏ€๋กœ <ํ•ฉ๊ฒฉ>์ž…๋‹ˆ๋‹ค.");
		
		}	else {
				System.out.println("[๊ฒฐ๊ณผ]์ ์ˆ˜๊ฐ€ 60์  ๋ฏธ๋งŒ์ด๋ฏ€๋กœ <๋ถˆํ•ฉ๊ฒฉ>์ž…๋‹ˆ๋‹ค.");
		}

 

=> ์ฃผ์„์ฒ˜๋ฆฌ ๋œ ๋ถ€๋ถ„์ฒ˜๋Ÿผ if๋ฌธ๋งŒ ํ™œ์šฉํ•ด์„œ ์กฐ๊ฑด์‹์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์œผ๋‚˜, ๋” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๋ฐ”๋กœ ๊ทธ ์•„๋ž˜์™€ ๊ฐ™์ด if๋ฌธ๊ณผ else๋ฌธ์„ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.  ์•ž์œผ๋กœ if~else๋Š” ์ง๊ฟ์ฒ˜๋Ÿผ ์“ธ ์˜ˆ์ •.

 

score์€ 50์ด์—ˆ์œผ๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋จ.

[๊ฒฐ๊ณผ]์ ์ˆ˜๊ฐ€ 60์  ๋ฏธ๋งŒ์ด๋ฏ€๋กœ <๋ถˆํ•ฉ๊ฒฉ>์ž…๋‹ˆ๋‹ค.

 

 

์˜ˆ์ œ3

int num=9;
		
		//๋ณ€์ˆ˜๊ฐ’์„ ํ™€์ˆ˜์™€ ์ง์ˆ˜๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		if(num % 2 != 0) {
			System.out.println(num+" = ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค.");
		}	else {
			System.out.println(num+" = ์ง์ˆ˜์ž…๋‹ˆ๋‹ค.");
		}
		System.out.println("==================================================");
		
		char mun='O';
		
		//๋ณ€์ˆ˜๊ฐ’์„ ์˜๋ฌธ์ž ๋˜๋Š” ๋น„์˜๋ฌธ์ž๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		if(mun >= 'A' && mun <='Z' || mun >= 'a' && mun <= 'z') {
			System.out.println("[๊ฒฐ๊ณผ]"+mun+" = ์˜๋ฌธ์ž");
		}	else {
			System.out.println("[๊ฒฐ๊ณผ]"+mun+" = ์˜๋ฌธ์ž๊ฐ€ ์•„๋‹˜"
		}
		System.out.println("==================================================");
		boolean bool=false;
		
		if(!bool) {
			System.out.println("ํ˜„์žฌ ๋ณ€์ˆ˜๊ฐ’์€ [๊ฑฐ์ง“]์ž…๋‹ˆ๋‹ค.");
		} else {
			System.out.println("ํ˜„์žฌ ๋ณ€์ˆ˜๊ฐ’์€ [์ฐธ]์ž…๋‹ˆ๋‹ค.");
			
		}

 

=>

* num % 2 !=0 ์˜ ์˜๋ฏธ๋Š”  'num์„ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0๊ณผ ๊ฐ™์ง€ ์•Š๋‹ค' ์ด๋‹ค. ์ฆ‰ ํ™€์ˆ˜๋ฅผ ์˜๋ฏธํ•จ.

* char๊ฐ€ A๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , Z๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์€ ๋ฒ”์œ„๊ฐ€ A~Z๋ผ๋Š” ๊ฒƒ์ž„. ์ฆ‰, A~Z, a~z ์•ŒํŒŒ๋ฒณ ์ „์ฒด ๋ฒ”์œ„์— ํ•ด๋‹นํ•˜๋ฉด ์˜๋ฌธ์ž๋ผ๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ.

*bool์˜ ์ดˆ๊ธฐ๊ฐ’์€  false.

false๊ฐ€ ์ฐธ์ด ๋˜๋ ค๋ฉด !bool ์„ ์กฐ๊ฑด์— ๋„ฃ์–ด์ค€๋‹ค.

๊ทธ๋Ÿผ ์ฐธ์ด๋‹ˆ๊นŒ "ํ˜„์žฌ ๋ณ€์ˆ˜๊ฐ’์€ [๊ฑฐ์ง“]์ž…๋‹ˆ๋‹ค."๊ฐ€ ์ถœ๋ ฅ๋จ.

 

[Console ์ถœ๋ ฅ ๊ฒฐ๊ณผ] 

9 = ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค.

==================================================

[๊ฒฐ๊ณผ]O = ์˜๋ฌธ์ž

==================================================

ํ˜„์žฌ ๋ณ€์ˆ˜๊ฐ’์€ [๊ฑฐ์ง“]์ž…๋‹ˆ๋‹ค.

 

 

์˜ˆ์ œ4

int jumsu=85;

//๋ณ€์ˆ˜๊ฐ’์ด 0~100 ๋ฒ”์œ„์˜ ์œ ํšจํ•œ ๊ฐ’์ด ๋งž๋Š”์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
if(jumsu>=0 && jumsu<=100) {
		//๋ณ€์ˆ˜๊ฐ’(์ ์ˆ˜)์„ ์ด์šฉํ•˜์—ฌ ๋“ฑ๊ธ‰(ํ•™์ )์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		//100 ~ 90 : A, 89 ~ 80 : B, 79 ~ 70 : C, 69 ~ 60 : D, 59 ~ 0: F
		String grade="";//ํ•™์ ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜
			
            if(jumsu >= 90) {
				grade = "A";
			} else if(jumsu >= 80) {
				grade = "B";
			} else if(jumsu >= 70) {
				grade = "C";
			} else if(jumsu >= 60) {
				grade = "D";
			} else  {
				grade = "F";
			}
			
            System.out.println("[๊ฒฐ๊ณผ]"+jumsu+"์  = "+grade+"ํ•™์ ");
		}

 

 

2๏ธโƒฃSwitch๋ฌธ

๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋ช…๋ น์„ ์„ ํƒ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ - ์‹ค์ˆ˜๊ฐ’ ๋น„๊ต ๋ถˆ๊ฐ€๋Šฅ

=> ๋น„๊ต๋Œ€์ƒ์—๋Š” ๋ณ€์ˆ˜ ๋˜๋Š” ์—ฐ์‚ฐ์‹์„ ์ž‘์„ฑํ•˜์—ฌ ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’ ์ œ๊ณต
=> ๋น„๊ต๋Œ€์ƒ์˜ ๊ฐ’์„ case ํ‚ค์›Œ๋“œ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ’๊ณผ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” case ๊ตฌ๋ฌธ์— ์ž‘์„ฑ๋œ ๋ช…๋ น๋ถ€ํ„ฐ ํ•˜๋‹จ์— ์ž‘์„ฑ๋œ ๋ชจ๋“  ๋ช…๋ น๋“ค์„ ์‹คํ–‰
=> case ํ‚ค์›Œ๋“œ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ’์€ ๋ฆฌํ„ฐ๋Ÿด ๋˜๋Š” ์ƒ์ˆ˜(Constant)๋งŒ ์ž‘์„ฑ ๊ฐ€๋Šฅ
=> case ํ‚ค์›Œ๋“œ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ’์ด ์ค‘๋ณต๋˜์–ด ์ž‘์„ฑ๋  ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ
=> ๋ธ”๋Ÿญ ๋‚ด๋ถ€์˜ ๋ช…๋ น ์ค‘ break ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด switch ๊ตฌ๋ฌธ ์ข…๋ฃŒ
=> ๋น„๊ต๋Œ€์ƒ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฐ’์ด case ์ œ๊ณต๋˜๋Š” ๋ชจ๋“  ๊ฐ’๊ณผ ๋‹ค๋ฅธ ๊ฒฝ์šฐ default ํ‚ค์›Œ๋“œ๋กœ ์ œ๊ณต๋˜๋Š” ๋ช…๋ น ์‹คํ–‰ - ์ƒ๋žต ๊ฐ€๋Šฅ

ํ˜•์‹) switch(๋น„๊ต๋Œ€์ƒ) {

  case ๊ฐ’1 : ๋ช…๋ น; ๋ช…๋ น; ... [break;]

  case ๊ฐ’2 : ๋ช…๋ น; ๋ช…๋ น; ... [break;]

  case ๊ฐ’3 : ๋ช…๋ น; ๋ช…๋ น; ... [break;]

  ...

  [default : ๋ช…๋ น; ๋ช…๋ น; ...]

  }

 

์˜ˆ์ œ

public class SwitchApp {
	public static void main(String[] args) {
		int choice=1;
		
		switch(choice) {
		case 1:
			System.out.println("์ˆ˜์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
		case 2:
			System.out.println("๊ธˆ์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
		case 3:
			System.out.println("ํ™”์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
		}
		System.out.println("========================================================");
		
		switch(choice) {
		case 1:
			System.out.println("์ˆ˜์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
			break;
		case 2:
			System.out.println("๊ธˆ์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
			break;
		case 3:
			System.out.println("ํ™”์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
			break;
		default:
			System.out.println("์ง€๊ตฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");
		}
		System.out.println("========================================================");
		int jumsu=85;
		
		//๋ณ€์ˆ˜๊ฐ’์ด 0~100 ๋ฒ”์œ„์˜ ์œ ํšจํ•œ ๊ฐ’์ด ๋งž๋Š”์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
		if(jumsu>=0 && jumsu<=100) {
			//๋ณ€์ˆ˜๊ฐ’(์ ์ˆ˜)์„ ์ด์šฉํ•˜์—ฌ ๋“ฑ๊ธ‰(ํ•™์ )์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
			String grade;
			
			switch(jumsu/10) {
			case 10:
			case 9: grade ="A"; break;
			case 8: grade ="B"; break;
			case 7: grade ="C"; break;
			case 6: grade ="D"; break;
			default: grade="F";
		}
		System.out.println("[๊ฒฐ๊ณผ]"+jumsu+"์  = "+grade+"ํ•™์ ");
		}	
		System.out.println("========================================================");
		String kor="๋‘˜";
		String eng="";
		
		//๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜์—ฌ ๋ช…๋ น ์„ ํƒ ์‹คํ–‰ ๊ฐ€๋Šฅ
		switch(kor) {
		case "ํ•˜๋‚˜": eng="One"; break;
		case "๋‘˜": eng="Two"; break;
		case "์…‹": eng="Three"; break;		
		}
	
		System.out.println("[๊ฒฐ๊ณผ]"+kor+" = "+eng);
		System.out.println("========================================================");
	}
}

 

=>

[Console ์ถœ๋ ฅ ๊ฒฐ๊ณผ] 

์ˆ˜์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ธˆ์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ™”์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

========================================================

์ˆ˜์„ฑ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

========================================================

[๊ฒฐ๊ณผ]85์  = Bํ•™์ 

========================================================

[๊ฒฐ๊ณผ]๋‘˜ = Two

========================================================

 

์ฒซ๋ฒˆ์งธ์—์„œ๋Š” break๊ฐ€ ์—†์œผ๋‹ˆ Case 1๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‹ค ์ถœ๋ ฅ๋จ.

๊ทธ๋Ÿฌ๋‚˜ ๋‘๋ฒˆ์งธ switch๋ฌธ์—์„œ๋Š” ๊ฐ๊ฐ ๋ธŒ๋ ˆ์ดํฌ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Case1๋งŒ ์ถœ๋ ฅํ•˜๊ณ  break๋กœ ๋น ์ ธ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋˜ if๋ฌธ์œผ๋กœ ์ ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ•™์ ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ, 

๋˜‘๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ switch๋ฌธ์œผ๋กœ๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌธ์ž์—ด๋„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์–ด, case ๋’ค์— ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด "ํ•˜๋‚˜" "๋‘˜" ๋“ฑ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•