๊ด€๋ฆฌ ๋ฉ”๋‰ด

IT’s Portfolio

[Java] Lecture - Day 4 ๋ณธ๋ฌธ

Development Study/Java

[Java] Lecture - Day 4

f1r3_r41n 2023. 12. 12. 01:01
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅ Basic Java - Day 4

๐Ÿ‘‰๐Ÿป [Chapter 03] ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฐฐ์—ด, ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๋ฐ˜๋ณต๋ฌธ

for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
    .. ์ž‘์—…๋ฌธ ..
}
  • for : ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ
while(์กฐ๊ฑด์‹) {
    .. ์ž‘์—…๋ฌธ ..
}
  • while
    • ์กฐ๊ฑด์‹์ด '์ฐธ'์ธ ๋™์•ˆ ๋ฐ˜๋ณต ์‹คํ–‰
do {
    .. ์ž‘์—…๋ฌธ ..
} while(์กฐ๊ฑด์‹);
  • do-while
    • ์กฐ๊ฑด์‹์ด '์ฐธ'์ธ ๋™์•ˆ ๋ฐ˜๋ณต ์‹คํ–‰
    • ์ž‘์—…๋ฌธ์€ ํ•œ ๋ฒˆ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰
for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
    for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
        ...
    }
    ...
}
  • ์ค‘์ฒฉ ๋ฐ˜๋ณต
    • ๋ฐ˜๋ณต๋ฌธ์ด ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ์„ ๋‚ดํฌํ•˜๋Š” ๊ตฌ์กฐ

continue ๋ฌธ

for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
    ...
    continue;
    ...
}
while(์กฐ๊ฑด์‹) {
    ...
    continue;
    ...
}
do {
    ...
    continue;
    ...
} while(์กฐ๊ฑด์‹);
  • ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ ๋‚˜๊ฐ€์ง€ ์•Š๊ณ , ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ œ์–ด ๋ณ€๊ฒฝ
  • ๋ฐ˜๋ณต๋ฌธ์—์„œ continue ๋ฌธ์— ์˜ํ•œ ๋ถ„๊ธฐ

break ๋ฌธ

for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
    ...
    break;
    ...
}
...
for(์ดˆ๊ธฐ๋ฌธ; ์กฐ๊ฑด์‹; ๋ฐ˜๋ณต ํ›„ ์ž‘์—…) {
    while(์กฐ๊ฑด์‹) {
        ...
        break;
        ...
    }
    ...
}
...
  • ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋ฅผ ์ฆ‰์‹œ ๋ฒ—์–ด๊ฐˆ ๋•Œ ์‚ฌ์šฉ
    • ํ•˜๋‚˜์˜ ๋ฐ˜๋ณต๋ฌธ๋งŒ ๋ฒ—์–ด๋‚จ
    • ์ค‘์ฒฉ ๋ฐ˜๋ณต์˜ ๊ฒฝ์šฐ ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์˜ break ๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ๋งŒ ๋ฒ—์–ด๋‚จ

์ž๋ฐ” ๋ฐฐ์—ด

  • Array
    • ์ธ๋ฑ์Šค์™€ ์ธ๋ฑ์Šค์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ ๊ตฌ์กฐ
      • ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์„ ์–ธ ๊ฐ€๋Šฅ
    • ๋ฐฐ์—ด์€ ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„
      • ์›์†Œ ๋ฐ์ดํ„ฐ๋“ค์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋จ
      • ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์›์†Œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ
      • ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ
    • ๋ฐฐ์—ด ์ธ๋ฑ์Šค
      • 0๋ถ€ํ„ฐ ์‹œ์ž‘
      • ์ธ๋ฑ์Šค๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์œ„์น˜์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ƒ๋Œ€ ์œ„์น˜
int i[] = new int[10];
  • ๋ฐฐ์—ด ์„ ์–ธ
int i[] = new int[5];
int myI[] = i; 
  • ๋ ˆํผ๋Ÿฐ์Šค ์น˜ํ™˜์œผ๋กœ ๋‘ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด ๊ณต์œ 

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

int i[] = new int[5];
int size = i.length;
  • ์ž๋ฐ”์˜ ๋ฐฐ์—ด์€ ๊ฐ์ฒด๋กœ ์ฒ˜๋ฆฌ
    • ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ๋ฐฐ์—ญ ๊ฐ์ฒด์˜ length ํ•„๋“œ์— ์ €์žฅ
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋ฐฐ์—ด ์ „๋‹ฌ ๋น„๊ต
    • C/Cpp์˜ ๊ฒฝ์šฐ
      • ๋ฐฐ์—ด๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฐ ์ „๋‹ฌ ๋ฐ›์Œ
    • ์ž๋ฐ”์˜ ๊ฒฝ์šฐ
      • ๋ฐฐ์—ด๋งŒ ์ „๋‹ฌ๋ฐ›์Œ

๋ฐฐ์—ด๊ณผ for-each ๋ฌธ

for(๋ณ€์ˆ˜ : ๋ฐฐ์—ด๋ ˆํผ๋Ÿฐ์Šค) {
    .. ๋ฐ˜๋ณต์ž‘์—…๋ฌธ ..
}
  • for-each ๋ฌธ
    • ๋ฐฐ์—ด๊ณผ ์—ด๊ฑฐ(enumeration) ์›์†Œ๋ฅผ ์ˆœ์ฐจ ์ ‘๊ทผํ•˜๋Š”๋ฐ ์œ ์šฉํ•œ for ๋ฌธ

2์ฐจ์› ๋ฐฐ์—ด

int i[][] = new int[2][5];
int[][] i = new int[2][5];
  • 2์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธ
// 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ–‰ ๊ฐœ์ˆ˜
i.length

// n๋ฒˆ์งธ ํ–‰์˜ ์—ด ๊ฐœ์ˆ˜
i[n].length

// 1๋ฒˆ์งธ ํ–‰์˜ ์—ด ๊ฐœ์ˆ˜
i[1].length

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

  • ๋ฐฐ์—ด ๋ฆฌํ„ด
    • ๋ฐฐ์—ด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋งŒ ๋ฆฌํ„ด(๋ฐฐ์—ด ์ „์ฒด๊ฐ€ ๋ฆฌํ„ด๋˜๋Š” ๊ฒƒ์ด ์•„๋‹˜)
int[] makeArray() {
    int temp[] = new int[4];
    return temp;
}

public static void main(String[] args) {
    int[] intArray;
    intArray = makeArray();
}
  • ๋ฉ”์†Œ๋“œ์˜ ๋ฆฌํ„ด ํƒ€์ž…
    • ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฐ์—ด ํƒ€์ž…๊ณผ ๋ฆฌํ„ด ๋ฐ›๋Š” ๋ฐฐ์—ด ํƒ€์ž… ์ผ์น˜
    • ๋ฆฌํ„ด ํƒ€์ž…์— ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์Œ

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

  • Exception
    • ์‹คํ–‰ ์ค‘ ์˜ค๋™์ž‘์ด๋‚˜ ๊ฒฐ๊ณผ์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ ๋ฐœ์ƒ
      • ์ž๋ฐ”์—์„œ๋Š” ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ์˜ˆ์™ธ๋กœ ์ฒ˜๋ฆฌ
  • ์‹คํ–‰ ์ค‘ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ
    • ์ž๋ฐ” ํ”Œ๋žซํผ์€ ์‹คํ–‰ ์ค‘์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์˜ˆ์™ธ๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•จ
      • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ•์ œ ์ข…๋ฃŒ ์‹œํ‚ด
  • ์˜ˆ์™ธ ๋ฐœ์ƒ ๊ฒฝ์šฐ
    • ์ •์ˆ˜๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ
    • ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ณด๋‹ค ํฐ ์ธ๋ฑ์Šค๋กœ ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ
    • ์ •์ˆ˜๋ฅผ ์ฝ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์„ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ

try-catch-finally ๋ฌธ

  • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
    • ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์—์„œ ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ
    • ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ์ ์—์„œ ์˜ˆ์™ธ ๊ฐ์ฒด๋ฅผ ์žก์•„ ์ฒ˜๋ฆฌ
try {
    ์˜ˆ์™ธ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚ดํฌํ•œ ์‹คํ–‰๋ฌธ(try ๋ธ”๋ก)
} catch (์ฒ˜๋ฆฌ ์˜ˆ์™ธ ํƒ€์ž… ์„ ์–ธ) {
    ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฌธ(catch ๋ธ”๋ก)
} finally {
    ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ์‹คํ–‰ ๋ฌธ์žฅ(finally ๋ธ”๋ก)
}
  • finally ๋ธ”๋ก์€ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•จ

์ž๋ฐ”์˜ ์˜ˆ์™ธ ํด๋ž˜์Šค

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

์˜ˆ์™ธ ๋– ๋„˜๊ธฐ๊ธฐ : throws

import java.util.Scanner;

public class exam1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int div1;
        int div2;

        System.out.print("๋‚˜๋‰จ์ˆ˜ ์ž…๋ ฅ");
        div1 = sc.nextInt();
        System.out.print("๋‚˜๋ˆ”์ˆ˜ ์ž…๋ ฅ");
        div2 = sc.nextInt();

        try {
            divide(div1, div2);
        } catch(ArithmeticException e) {
            System.out.println("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Œ");
        }

        sc.close();
    }

    static void divide(int div1, int div2) throws ArithmeticException {
        System.out.println(div1+"๋ฅผ "+div2+"๋กœ ๋‚˜๋ˆ„๋ฉด ๋ชซ์€ "
            + div1/div2 +"์ž…๋‹ˆ๋‹ค.");
    }
}
  • ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์‹คํ–‰๋ฌธ์˜ ์ƒ์œ„ ์ฝ”๋“œ ๋ธ”๋ก์œผ๋กœ ์˜ˆ์™ธ ๊ฐ์ฒด ๋– ๋„˜๊ธฐ๊ธฐ
  • ๋– ๋„˜๊ฒจ์ง„ ์˜ˆ์™ธ ๊ฐ์ฒด๋Š” ์ ์ ˆํ•œ ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋‚˜ ์ฒ˜๋ฆฌ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์—ญ์ˆœ์œผ๋กœ ์ „๋‹ฌ
  • main๊นŒ์ง€ ๋– ๋„˜๊ฒจ๋„ ์ ์ ˆํ•œ ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ์ง€ ๋ชปํ•  ์‹œ JVM์€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒ ์‹œํ‚ด
728x90
๋ฐ˜์‘ํ˜•

'Development Study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] Lecture - Day 6  (0) 2023.12.12
[Java] Lecture - Day 5  (0) 2023.12.12
[Java] Lecture - Day 3  (0) 2023.12.12
[Java] Lecture - Day 1~2  (0) 2023.12.12
[Java] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์„ธ ์ •์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’  (0) 2020.04.06
Comments