๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1. Java ์ž๋ฐ”/1_0. ์ฑ…, ๊ฐ•์˜

[๋ช…ํ’ˆ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ] 3์žฅ ์š”์•ฝ & ์ •๋ฆฌ

by ๋น„์†Œ์•ผ 2022. 5. 18.
728x90

[๋ช…ํ’ˆ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ] 3์žฅ ์š”์•ฝ & ์ •๋ฆฌ

3์žฅ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฐฐ์—ด ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌ

1. ๋ฐ˜๋ณต๋ฌธ 


for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…๋ฌธ) {
 ์‹คํ–‰๋ฌธ์žฅ;
}

 

์ดˆ๊ธฐ๋ฌธ์— ๋ฐ˜๋ณต ์ œ์–ด ๋ณ€์ˆ˜ ์„ ์–ธ ๊ฐ€๋Šฅ
์ดˆ๊ธฐ๋ฌธ๊ณผ ๋ฐ˜๋ณต ํ›„ ์ž‘์—…๋ฌธ์— ,๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ฌธ์žฅ ๋‚˜์—ด ๊ฐ€๋Šฅ
๋นˆ์ƒํƒœ๋กœ ๋‘์–ด๋„ ๋˜์ง€๋งŒ ๋์— ์„ธ๋ฏธ์ฝœ๋ก ์€ ์žˆ์–ด์•ผ ํ•จ

๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐ๋ฌธ์— ์„ ์–ธํ•˜๋ฉด for๋ฌธ ๋ธ”๋Ÿญ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ


๋ฌดํ•œ๋ฐ˜๋ณต
1. ์กฐ๊ฑด์‹์— ๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด true;
2. ์กฐ๊ฑด์‹์„ ๋น„์›Œ๋‘  ; ;

while(์กฐ๊ฑด์‹){ 
์‹คํ–‰๋ฌธ์žฅ;
}

do

์‹คํ–‰๋ฌธ์žฅ;
} while(์กฐ๊ฑด์‹);

while๋ฌธ ๋์—๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์ด ์—†์ง€๋งŒ, do while๋ฌธ ๋์—๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์ด ์žˆ์–ด์•ผ ํ•จ
while, do-while๋ฌธ ์กฐ๊ฑด์‹์— ์‚ฌ์šฉ๋  ๋ฐ˜๋ณต ์ œ์–ด ๋ณ€์ˆ˜๋Š” ๊ทธ ์ „์— ์„ ์–ธ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ

while, do-while๋ฌธ ๋ฌดํ•œ๋ฐ˜๋ณต์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ๊ฑด์‹์„ ๋น„์›Œ๋‘๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

do-while๋ฌธ์€ ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋‹ฌ๋ฆฌ, ์ž‘์—…๋ฌธ์ด ์ตœ์ดˆ ํ•œ๋ฒˆ์€ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰๋จ

 

์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋‚˜ ๋ฒ”์œ„๊ฐ€ ๋ช…ํ™•ํ•œ ๊ฒฝ์šฐ์—๋Š” for๋ฌธ, ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์•Œ ์ˆ˜ ์—†๊ณ , ๋ฐ˜๋ณต์ด ์ง„ํ–‰๋˜๋ฉด์„œ ํ‰๊ฐ€๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ while, do-while๋ฌธ ์‚ฌ์šฉ

 

์ค‘์ฒฉ๋ฐ˜๋ณต๋ฌธ

์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ // ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ์ด ์žˆ๋Š” ๊ตฌ์กฐ
์ด๋ก ์ ์œผ๋กœ๋Š” ํšŸ์ˆ˜์ œํ•œ ์—†์ง€๋งŒ, ๋„ˆ๋ฌด ๋งŽ์€ ์ค‘์ฒฉ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“œ๋ฏ€๋กœ 2, 3์ค‘ ๋ฐ˜๋ณต๋ฌธ์ด ์ ๋‹น
๊ตฌ๊ตฌ๋‹จ ์˜ˆ์‹œ ์œ ๋ช…

2. break;, continue;, ๋ผ๋ฒจ:

 

break; // ํ”„๋กœ๊ทธ๋žจ์—์„œ break;๋ฌธ์„ ๋งŒ๋‚˜๋ฉด ์ž๊ธฐ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ธ๊ณ  ์žˆ๋Š” ๋ธ”๋ก {} ์œผ๋กœ๋ถ€ํ„ฐ ๋ฒ—์–ด๋‚œ๋‹ค.

continue; // ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ€์ง€ ์•Š์œผ๋ฉด์„œ ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ง„ํ–‰
for๋ฌธ์€ ๋ฐ˜๋ณต ํ›„ ์ž‘์—…๋ฌธ, whilen๋ฌธ์€ ์กฐ๊ฑด์‹, do-while๋ฌธ๋„ ์กฐ๊ฑด์‹์œผ๋กœ ๋ถ„๊ธฐ

๋ฐ˜๋ณต๋ฌธ์— label๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. // ๋ผ๋ฒจ์ด๋ฆ„:, break ๋ผ๋ฒจ์ด๋ฆ„;, continue ๋ผ๋ฒจ์ด๋ฆ„;

 

while๋ฌธ์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ ๋…ธํ•˜์šฐ
while๋ฌธ์˜ ์กฐ๊ฑด์‹์— true๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ผ๋‹จ ๋ฌดํ•œ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  while๋ฌธ์„ ๋ฒ—์–ด๋‚˜๋Š” ์กฐ๊ฑด์„ if๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•œ ๋’ค, break;๋ฌธ์œผ๋กœ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.
ex) while(!(n % 5 == 0 || n < 0)) ์—์„œ 
while(true) { 
    if(n%5 ==0) break; 
    if(n<0) break; 
}

3. ๋ฐฐ์—ด

 

 

๋ฐฐ์—ด // C/C++๊ณผ ๋ฌธ๋ฒ•์ด ๋‹ค๋ฆ„
์ธ๋ฑ์Šค์™€ ์ธ๋ฑ์Šค์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ
๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ
์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘

 

๋ฐฐ์—ด์˜ ์„ ์–ธ ๋ฐ ์ƒ์„ฑ

int[] i = new int[10]; // intํ˜• ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํฌ๊ธฐ๊ฐ€ 10์ธ ๋ฐฐ์—ด i ์„ ์–ธ ๋ฐ ์ƒ์„ฑ
์ž๋ฐ”์—์„œ๋Š” ๋ฐฐ์—ด์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃธ // new ํ‚ค์›Œ๋“œ๋กœ ์ƒ์„ฑ, new๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ์ž
int i[10]; // C์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ, ๋ฐฐ์—ด(์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜)์„ ์–ธ ์‹œ ํฌ๊ธฐ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.

 

int[] i = new int[] {1, 2, 3, 4, 5, 6}; == int[] i = {1, 2, 3, 4, 5, 6}; 
// ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ๋™์‹œ์— ์ดˆ๊ธฐํ™” ๋ธ”๋ก์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด, new๋กœ ๋”ฐ๋กœ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ํ•  ํ•„์š” ์—†๋‹ค.
int[] i;
i = new int[] {1, 2, 3, 4, 5, 6}; // ์ด๋ฏธ ์„ ์–ธ๋œ ๋ฐฐ์—ด์€ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ๋งŒ ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ ์ •์ฒด๋Š” ์ด๋ฆ„์˜ ์™ผ์ชฝ์— ๋‹ค ๋ชฐ์•„์„œ ์“ด๋‹ค.
์ด๋ฆ„์˜ ์™ผ์ชฝ์— ์ •์ฒด๋ฅผ ํ‘œํ˜„ํ•œ int[] intArray;๊ฐ€ int intArray[]; ๋ณด๋‹ค ๋” ์ข‹์€ ํ‘œํ˜„๋ฒ•์ด๋‹ค.

 

int[] intArray; // intArray๋Š” ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ๊ทธ ์ž์ฒด๊ฐ€ ๋ฐฐ์—ด์€ ์•„๋‹ˆ๋‹ค. ์•„์ง ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด ๊ณต๊ฐ„์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ intArray ๊ฐ’์€ null์ด๋‹ค.

4. ๋ฐฐ์—ด ์›์†Œ ์ ‘๊ทผ

 

๋ฐฐ์—ด ์›์†Œ ์ ‘๊ทผ // [] ์•ˆ์— ์ธ๋ฑ์Šค ๋„ฃ์–ด ์ง์ ‘ ์ ‘๊ทผ
๋ฐฐ์—ด ์ƒ์„ฑํ•œ ํ›„์— ์›์†Œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
์ธ๋ฑ์Šค ๋ฒ”์œ„ ์ฃผ์˜ // 0๋ถ€ํ„ฐ ์‹œ์ž‘, ํฌ๊ธฐ -1๊นŒ์ง€, ์Œ์ˆ˜ ๋ถˆ๊ฐ€

 

๋ฐฐ์—ด ๊ฐ์ฒด ๋‚ด length ํ•„๋“œ // ๋ฐฐ์—ด์˜ ํฌ๊ธฐ

 

int[] intArray = new int[5];

int[] myArray = intArray;

// ํ•œ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐฐ์—ด ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ์ฐธ์กฐ ๊ฐ€๋Šฅ

// ์ด ์น˜ํ™˜์œผ๋กœ ๋ฐฐ์—ด์ด ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ ˆํผ๋Ÿฐ์Šค๋งŒ ๋ณต์‚ฌ๋จ

 

for-each๋ฌธ // ๋ฐฐ์—ด์ด๋‚˜ ๋‚˜์—ด์˜ ๊ฐ ์›์†Œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผ ํ•˜๋Š”๋ฐ ์œ ์šฉํ•œ for๋ฌธ 
int[] num = {1, 2, 3, 4, 5};
for(int k : num)  // ๋ฐ˜๋ณต๋  ๋•Œ๋งˆ๋‹ค k๋Š” num[0], num[1], ..., num[4] ๊ฐ’์œผ๋กœ ์„ค์ •๋จ
sum += k; // k๋Š” num์ด๋ผ๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ์˜ ์ž„์‹œํ‘œํ˜„
System.out.println(”ํ•ฉ์€ “ + sum);

enum ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜์—ฌ enum ์ƒ์„ฑ
enum์€ .values() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ // ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ฏ€๋กœ []๋กœ ์›์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
enum Week {์›”, ํ™”, ์ˆ˜, ๋ชฉ, ๊ธˆ, ํ† , ์ผ}
for(Week day : Week.values()) // ๋ฐ˜๋ณต๋  ๋•Œ๋งˆ๋‹ค day๋Š” ์›”, ํ™”, ์ˆ˜ ... ์ผ
System.out.print(day + “์š”์ผ ”);

5. ๋‹ค์ฐจ์› ๋ฐฐ์—ด

 

 

๋‹ค์ฐจ์› ๋ฐฐ์—ด // ์ฃผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด ์‚ฌ์šฉ
int[][] i = new int[2][5]; // intํ˜• ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํฌ๊ธฐ๊ฐ€ 2ํ–‰ 5์—ด์ธ ๋ฐฐ์—ด i ์„ ์–ธ ๋™์‹œ์— ์ƒ์„ฑ
int[][] intArray = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}}; // ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ  ๋™์‹œ์— ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ์œผ๋กœ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด new ์—ฐ์‚ฐ์ž๋กœ ๋”ฐ๋กœ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ํ•  ํ•„์š” ์—†๋‹ค.
๋ฐฐ์—ด ๊ฐ์ฒด๊ฐ€ ์ด 3๊ฐœ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค.

// ํ–‰ ๋ฐฐ์—ด 1๊ฐœ, ๊ฐ ํ–‰์— ๋Œ€ํ•œ ์—ด ๋ฐฐ์—ด 2๊ฐœ
// ํ–‰์˜ ๊ฐ ์›์†Œ๋Š” ์—ด ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋œ๋‹ค.

2์ฐจ์› ๋ฐฐ์—ด์˜ length ํ•„๋“œ // ์ž๋ฐ”์—์„œ๋Š” ๋น„์ •๋ฐฉํ˜• ๋ฐฐ์—ด ๋•Œ๋ฌธ์— length ํ•„๋“œ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์ œ์–ดํ•œ๋‹ค.
i.length // 2์ฐจ์› ๋ฐฐ์—ด i์˜ ํ–‰์˜ ๊ฐœ์ˆ˜, 2
i[n].length // 2์ฐจ์› ๋ฐฐ์—ด i์˜ n๋ฒˆ์งธ ํ–‰์˜ ์—ด์˜ ๊ฐœ์ˆ˜

์ •๋ฐฉํ˜• ๋ฐฐ์—ด // ๊ฐ ํ–‰์— ๋Œ€ํ•œ ์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์€ ๋ฐฐ์—ด
๋น„์ •๋ฐฉํ˜• ๋ฐฐ์—ด // ๊ฐ ํ–‰์— ๋Œ€ํ•œ ์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋ฐฐ์—ด
๋น„์ •๋ฐฉํ˜• ๋ฐฐ์—ด์˜ ์ƒ์„ฑ // ํ–‰์— ๋Œ€ํ•œ ๋ฐฐ์—ด ๊ฐ์ฒด ๋จผ์ € ์ƒ์„ฑํ•˜๊ณ , ๊ฐ ํ–‰์— ๋Œ€ํ•œ ์—ด ๋ฐฐ์—ด ๊ฐ์ฒด ์ƒ์„ฑํ•˜์—ฌ ๋Œ€์ž…ํ•œ๋‹ค.

int[][] i = new int[4][];
i[0] = new int[1];
i[1] = new int[2];
i[2] = new int[3];
i[3] = new int[4];

6. ๋ฉ”์†Œ๋“œ์˜ ๋ฐฐ์—ด ๋ฆฌํ„ด

 

๋ฉ”์†Œ๋“œ์˜ ๋ฐฐ์—ด ๋ฆฌํ„ด // ๋ฐฐ์—ด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋ฆฌํ„ด
๋ฉ”์†Œ๋“œ ์„ ์–ธ๋ถ€์˜ ๋ฆฌํ„ด ํƒ€์ž…๊ณผ ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€์˜ ๋ฆฌํ„ด๋ฌธ์˜ ๋ฆฌํ„ด ํƒ€์ž…์ด ์ผ์น˜ ํ•ด์•ผํ•จ

int[] makeArray() {
    int[] temp = new int[4];
    return temp;
}

 

main() ๋ฉ”์†Œ๋“œ๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ๋•Œ, JVM์— ์˜ํ•ด ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ public์œผ๋กœ ์„ ์–ธ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

main() ๋ฉ”์†Œ๋“œ๋Š” ์ž์‹ ์„ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ์ „์—, ์ฒ˜์Œ๋ถ€ํ„ฐ JVM์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋ฏ€๋กœ static์œผ๋กœ ์„ ์–ธ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

String[] args๋Š” main() ๋ฉ”์†Œ๋“œ์— ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• // main() ๋ฉ”์†Œ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „, ๋ช…๋ นํ–‰ ์ธ์ž๋“ค์€ ๊ฐ๊ฐ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ , ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ์ €์žฅ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž์—ด ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ main() ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ args์— ์ „๋‹ฌ๋œ๋‹ค.

7. ์˜ˆ์™ธ์ฒ˜๋ฆฌ

 

์ปดํŒŒ์ผ ์—๋Ÿฌ compile error // ๋ฌธ๋ฒ• ์˜ค๋ฅ˜, ์ปดํŒŒ์ผํ•  ๋•Œ ๋ฐœ๊ฒฌ

์˜ˆ์™ธ exception // ์˜ค๋™์ž‘์ด๋‚˜ ๊ฒฐ๊ณผ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜, ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒ

 

์‹คํ–‰์‹œ๊ฐ„ ์˜ค๋ฅ˜ run time error // ์กฐ๊ฑด์ด ์ž˜๋ชป ์ž‘์„ฑ๋œ ๋ฐ˜๋ณต๋ฌธ์ด ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, recursion์„ ์ œ์–ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์ž‘์„ฑํ•˜์—ฌ ์Šคํƒ์ด ๊ณ„์† ์Œ“์—ฌ(์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ) JVM์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋˜๋Š” ๋“ฑ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ณ  ๊ฐ•์ œ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด ๋ฉˆ์ถœ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

์˜ˆ์™ธ exception // ์‹คํ–‰์‹œ๊ฐ„ ์˜ค๋ฅ˜ ์ค‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.


์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ์ฒด์— ์ •๋ณด๋ฅผ ๋‹ด์•„ ๋ฆฌํ„ด
์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฉด ๊ฐ•์ œ ์ข…๋ฃŒ๋จ

try {
์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์‹คํ–‰๋ฌธ
}
catch(์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ ํƒ€์ž… ์„ ์–ธ) {
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฌธ
}
finally { // ์ƒ๋žต ๊ฐ€๋Šฅ, ์ž๋ฐ”์—๋งŒ ์žˆ๊ณ , C/C++์—๋Š” ์—†๋‹ค.
๋ฌด์กฐ๊ฑด ์‹คํ–‰๋˜๋Š” ๋ฌธ์žฅ
}

 

์˜ˆ์™ธ ํƒ€์ž…(์˜ˆ์™ธ ํด๋ž˜์Šค) ์˜ˆ์™ธ ๋ฐœ์ƒ ๊ฒฝ์šฐ ํŒจํ‚ค์ง€
ArithmeticException ์ •์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆŒ ๋•Œ ๋ฐœ์ƒ java.lang
NullPointerException null ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ๋ฐœ์ƒ java.lang
ClassCastException ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ํƒ€์ž…์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ ๋ฐœ์ƒ java.lang
OutOfMemoryError ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒ java.lang
ArrayIndexOutOfBoundsException ๋ฐฐ์—ด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ ‘๊ทผ ์‹œ ๋ฐœ์ƒ java.lang
IllegalArgumentException ์ž˜๋ชป๋œ ์ธ์ž ์ „๋‹ฌ ์‹œ ๋ฐœ์ƒ java.lang
IOException ์ž…์ถœ๋ ฅ ๋™์ž‘ ์‹คํŒจ ๋˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์‹œ ๋ฐœ์ƒ java.io
NumberFormatException ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ํƒ€์ž…์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ ์‹œ ๋ฐœ์ƒ java.lang
InputMismatchException Scanner ํด๋ž˜์Šค์˜ nextInt()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ •์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›๊ณ ์ž ํ•˜์˜€์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ 'a' ๋“ฑ๊ณผ ๊ฐ™์ด ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ java.util

 

728x90