์ƒˆ์†Œ์‹

Algorithm/์ž๋ฐ”

์กฐ๊ฑด๋ฌธ & ๋ฐ˜๋ณต๋ฌธ

  • -

๐Ÿ“Œ ์กฐ๊ฑด๋ฌธ

 

โ–ถ๏ธŽ ์กฐ๊ฑด๋ฌธ์ด๋ž€?

 

โžž ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ

โžž ์กฐ๊ฑด๋ฌธ์—๋Š” if๋ฌธ, switch๋ฌธ์ด ์žˆ๋‹ค.

 

 

โ‘  if๋ฌธ - if ์™€ else

 

โžž ํŠน์ • ์กฐ๊ฑด์ด ์ฐธ(True)์ธ์ง€ ๊ฑฐ์ง“(False)์ธ์ง€ ํ™•์ธํ•˜๊ณ , ๊ทธ ์กฐ๊ฑด์ด ์ฐธ(True)์ผ ๊ฒฝ์šฐ ํŠน์ • ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ํ•œ๋‹ค.

โžž ์ฝ”๋“œ ๋ธ”๋Ÿญ : ์ค‘๊ด„ํ˜ธ({ }) ์‚ฌ์ด์— ์žˆ๋Š” ์ฝ”๋“œ

โžž else๋ฌธ : if๋ฌธ์—์„œ ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์ด ์—†๋Š” ๊ฒฝ์šฐ์— ์‹คํ–‰ํ•œ๋‹ค.

if (condition) {
    // ์กฐ๊ฑด์ด ์ฐธ(True)์ผ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
} else {
    // ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์ด ์—†์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
}

 

 

โ‘ก else if๋ฌธ - ์—ฐ๊ด€๋œ ์กฐ๊ฑด

 

โžž ์„œ๋กœ ์—ฐ๊ด€๋œ ์กฐ๊ฑด๋“ค์„ ๋น„๊ตํ•  ๋•Œ๋Š” else if๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

โžž ์ด๋ฏธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•จ์—๋„ ๋ถˆํ•„์š”ํ•œ ๋‹ค์Œ ์กฐ๊ฑด์„ ๊ณ„์† ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ”๋“œ์˜ ํšจ์œจ์„ฑ ์ฆ๊ฐ€

int age = 14;

if(age <= 7) { //~7: ๋ฏธ์ทจํ•™ 
	System.out.println("๋ฏธ์ทจํ•™");
}
if(age >= 8 && age <= 13) { //8~13: ์ดˆ๋“ฑํ•™์ƒ
	System.out.println("์ดˆ๋“ฑํ•™์ƒ"); }
if(age >= 14 && age <= 16) { //14~16: ์ค‘ํ•™์ƒ 
	System.out.println("์ค‘ํ•™์ƒ");
}
if(age >= 17 && age <= 19) { //17~19: ๊ณ ๋“ฑํ•™์ƒ
	System.out.println("๊ณ ๋“ฑํ•™์ƒ"); }
if(age >= 20) { //20~: ์„ฑ์ธ 
	System.out.println("์„ฑ์ธ");
}
int age = 14;

if(age <= 7) { //~7: ๋ฏธ์ทจํ•™ 
	System.out.println("๋ฏธ์ทจํ•™");
} else if(age <= 13) { //8~13: ์ดˆ๋“ฑํ•™์ƒ 
	System.out.println("์ดˆ๋“ฑํ•™์ƒ");
} else if(age <= 16) { //14~16: ์ค‘ํ•™์ƒ
	System.out.println("์ค‘ํ•™์ƒ");
} else if(age <= 19) { //17~19: ๊ณ ๋“ฑํ•™์ƒ
	System.out.println("๊ณ ๋“ฑํ•™์ƒ");
} else { //20~: ์„ฑ์ธ
	System.out.println("์„ฑ์ธ"); 
}

 

 

โ–ถ๏ธŽ switch๋ฌธ

 

โžž if๋ฌธ์„ ์กฐ๊ธˆ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ

โžž if๋ฌธ์€ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, switch๋ฌธ์€ ๊ทธ์ € ๊ฐ’์ด ๊ฐ™์€์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ๋น„๊ต ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

โ‘  switch๋ฌธ

 

โžž ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด ์–ด๋–ค case ์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น case์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰

โžž ๋งŒ์•ฝ break ๋ฌธ์ด ์—†์œผ๋ฉด, ์ผ์น˜ํ•˜๋Š” case ์ดํ›„์˜ ๋ชจ๋“  case ์ฝ”๋“œ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰

switch (์กฐ๊ฑด์‹) {
    case value1:
    // ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด value1์ผ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
    break;
    
    case value2:
    // ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด value2์ผ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
    break;
    
    default:
    // ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด ์œ„์˜ ์–ด๋–ค ๊ฐ’์—๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
 }
//grade 1:1000, 2:3000(๋ณ€๊ฒฝ), 3:3000, ๋‚˜๋จธ์ง€: 500 
int grade = 2;

int coupon;
switch (grade) {
	case 1:
    	coupon = 1000;
        break;
	case 2:
	case 3:
    	coupon = 3000;
        break;
    default:
		coupon = 500;
		break; 
}
System.out.println("๋ฐœ๊ธ‰๋ฐ›์€ ์ฟ ํฐ " + coupon);

 

 

โ‘ก switch๋ฌธ - Java14

//grade 1:1000, 2:2000, 3:3000, ๋‚˜๋จธ์ง€: 500 
int grade = 2;

int coupon = switch (grade) {
    case 1 -> 1000;
    case 2 -> 2000;
    case 3 -> 3000;
    default -> 500;
};

System.out.println("๋ฐœ๊ธ‰๋ฐ›์€ ์ฟ ํฐ " + coupon);

 

 

โ–ถ๏ธŽ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž 

 

โžž ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” ํ•ญ์ด 3๊ฐœ๋ผ๋Š” ๋œป์ด๋‹ค : ์กฐ๊ฑด , ์ฐธ-ํ‘œํ˜„์‹ , ๊ฑฐ์ง“-ํ‘œํ˜„์‹

โžž ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋ฉด ์ฐธ-ํ‘œํ˜„์‹์ด ์‹คํ–‰๋˜๊ณ , ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฑฐ์ง“-ํ‘œํ˜„์‹์ด ์‹คํ–‰

int age = 18;
String status;

// if๋ฌธ ์‚ฌ์šฉ ์˜ˆ์‹œ
if (age >= 18) {
	status = "์„ฑ์ธ"; 
} else {
	status = "๋ฏธ์„ฑ๋…„์ž"; 
}
System.out.println("age = " + age + " status = " + status);
         
// ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด if๋ฌธ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„
int age = 18;
String status = (age >= 18) ? "์„ฑ์ธ" : "๋ฏธ์„ฑ๋…„์ž";
System.out.println("age = " + age + " status = " + status);

 

 

๐Ÿ“Œ ๋ฐ˜๋ณต๋ฌธ

 

โ–ถ๏ธŽ while๋ฌธ

 

โžž ์กฐ๊ฑด์‹์„ ํ™•์ธํ•œ๋‹ค. ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด while๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค

โžž ์กฐ๊ฑด์‹์ด ์ฐธ์ด๋ฉด ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ํ•œ๋‹ค. ์ดํ›„์— ์ฝ”๋“œ ๋ธ”๋Ÿญ์ด ๋๋‚˜๋ฉด ๋‹ค์‹œ ์กฐ๊ฑด์‹ ๊ฒ€์‚ฌ๋กœ ๋Œ์•„๊ฐ€์„œ ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌํ•œ๋‹ค

while (์กฐ๊ฑด์‹) {
    // ์ฝ”๋“œ
}

 

 

โญ๏ธ ์ข‹์€ ์ฝ”๋“œ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ ๋‹ค.

int sum = 0;

sum = sum + 1; //sum(0) + 1 -> sum(1)
sum = sum + 2; //sum(1) + 2 -> sum(3)
sum = sum + 3; //sum(3) + 3 -> sum(6)
int count = 0;

 while (count < 3) {
    count++; 
    System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š”:" + count);
 }

 

 

โ–ถ๏ธŽ do-while๋ฌธ

 

โžž do-while ๋ฌธ์€ while ๋ฌธ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ, ์กฐ๊ฑด์— ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค

do {
    // ์ฝ”๋“œ
} while (์กฐ๊ฑด์‹);

 

 

โžž ์œ„์˜ while๋ฌธ์€ ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค

โžž  ์•„๋ž˜์˜ do-while๋ฌธ์€ ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์‹คํ–‰ํ•˜๋ฏ€๋กœ "ํ˜„์žฌ ์ˆซ์ž๋Š” : 10"์„ ์ถœ๋ ฅํ•œ๋‹ค.

int i = 10;

while (i < 3) {
    System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š”:" + i);
    i++;
}
int i = 10;

do {
    System.out.println("ํ˜„์žฌ ์ˆซ์ž๋Š”:" + i);
    i++;
} while (i < 3);

 

 

โ–ถ๏ธŽ break, continue

 

โ‘  break

 

โžž break ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜๊ณ  ๋‚˜๊ฐ„๋‹ค.

while(์กฐ๊ฑด์‹) { 
    ์ฝ”๋“œ1;
    break; //์ฆ‰์‹œ while๋ฌธ ์ข…๋ฃŒ๋กœ ์ด๋™ํ•œ๋‹ค.
    ์ฝ”๋“œ2; 
} //while๋ฌธ ์ข…๋ฃŒ

 

 

โœ๏ธ ๋ฌธ์ œ : 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ˆซ์ž๋ฅผ ๊ณ„์† ๋ˆ„์ ํ•ด์„œ ๋”ํ•˜๋‹ค๊ฐ€ ํ•ฉ๊ณ„๊ฐ€ 10๋ณด๋‹ค ํฐ ๊ฐ’์„ ์ฒ˜์Œ์œผ๋กœ ์ฐพ์œผ๋ฉด?

int sum = 0;
int i = 1;

while (true) {
    sum += i;
    if (sum > 10) {
    	System.out.println("ํ•ฉ์ด 10๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ: i=" + i + " sum=" + sum);
        break;
    }
    i++;
}

 

 

โ‘ก continue

 

โžž continue ๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

while(์กฐ๊ฑด์‹) { 
    ์ฝ”๋“œ1;
    continue;//์ฆ‰์‹œ ์กฐ๊ฑด์‹์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
    ์ฝ”๋“œ2; 
}

 

 

โœ๏ธ ๋ฌธ์ œ : 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ์ˆซ์ž๊ฐ€ 3์ผ ๋•Œ๋Š” ์ถœ๋ ฅ์„ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ํ•˜๋ ค๋ฉด?

int i = 1;

while (i <= 5) {
    if(i == 3) {
        i++;
        continue;
    }
    System.out.println(i);
    i++;
}

 

 

โ–ถ๏ธŽ for ๋ฐ˜๋ณต๋ฌธ

 

โžž for๋ฌธ๋„ while๋ฌธ๊ณผ ๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ์ด๊ณ , ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

โžž ์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

โžž ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์€ ์„ ํƒ์ด๋‹ค. ๋‹จ ์ƒ๋žตํ•ด๋„ ๊ฐ ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์„ธ๋ฏธ ์ฝœ๋ก ( ; )์€ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์ˆ˜ํ–‰ํ•  statment
}
for (; ;) {
    // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ ์ˆ˜ํ–‰ํ•  statment
}

 

1. ์ดˆ๊ธฐ์‹ ์‹คํ–‰

    โ‘  ์ฃผ๋กœ ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”

    โ‘ก ์ดˆ๊ธฐ์‹์€ ๋”ฑ 1๋ฒˆ๋งŒ ์‚ฌ์šฉ

2. ์กฐ๊ฑด์‹ ๊ฒ€์ฆ

    โ‘  ์ฐธ(True)์ด๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰

    โ‘ก ๊ฑฐ์ง“(False)์ด๋ฉด for ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค

3. ์ฝ”๋“œ ์‹คํ–‰

4. ์ฆ๊ฐ์‹ ์‹คํ–‰

    โ‘  ์ฝ”๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด, ์ฆ๊ฐ์‹์„ ์‹คํ–‰ํ•œ๋‹ค

    โ‘ก ์ฃผ๋กœ ์ดˆ๊ธฐ์‹์— ๋„ฃ์€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฆ๊ฐ€(i++)ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

5. ๋‹ค์‹œ ์กฐ๊ฑด์‹๋ถ€ํ„ฐ ์‹คํ–‰

 

 

โ–ถ๏ธŽ ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ

 

โžž ๋ฐ˜๋ณต๋ฌธ์€ ๋‚ด๋ถ€์— ๋˜ ๋ฐ˜๋ณต๋ฌธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. for , while ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค

โžž ์™ธ๋ถ€ for๋Š” 2๋ฒˆ, ๋‚ด๋ถ€ for๋Š” 3๋ฒˆ ์‹คํ–‰๋œ๋‹ค.

โžž ๊ทธ๋Ÿฐ๋ฐ ์™ธ๋ถ€ for 1๋ฒˆ๋‹น ๋‚ด๋ถ€ for๊ฐ€ 3๋ฒˆ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€(2) * ๋‚ด๋ถ€(3) ํ•ด์„œ ์ด 6๋ฒˆ์˜ ๋‚ด๋ถ€ for ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰

for (int i = 0; i < 2; i++) {
    System.out.println("์™ธ๋ถ€ for ์‹œ์ž‘ i:" + i);
    for (int j = 0; j < 3; j++) {
        System.out.println("-> ๋‚ด๋ถ€ for " + i + "-" + j);
    }
    
    System.out.println("์™ธ๋ถ€ for ์ข…๋ฃŒ i:" + i);
    System.out.println(); //๋ผ์ธ ๊ตฌ๋ถ„์„ ์œ„ํ•ด ์‹คํ–‰
 }

 

 

โ–ถ๏ธŽ ํ–ฅ์ƒ๋œ for ๋ฐ˜๋ณต๋ฌธ

 

[Java ๊ธฐ์ดˆ] ํ–ฅ์ƒ๋œ for๋ฌธ (for-each)

1. ์ผ๋ฐ˜์ ์ธ for๋ฌธ int[] numbers = {1, 2, 3, 4, 5}; // ์ผ๋ฐ˜ for๋ฌธ for (int i = 0; i < numbers.length; i++) { int number = numbers[i]; System.out.println(number); } ์ผ๋ฐ˜์ ์ธ for๋ฌธ์„ ์‚ดํŽด๋ณด๋ฉด, ๋ฐฐ์—ด์— ์žˆ๋Š” ๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ์ฝ์–ด์„œ n

hyukwon-devlog.tistory.com

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.