본 캠프_7일차

졸용·2025년 2월 25일

TIL

목록 보기
8/144

⭐ Java 강의

강의자료_1주차

Java 입문 과정에서 강의 들으며 빠른 학습 진도를 위해 추후에 집중해서 복습할 부분 메모하기

⭐ 연산자

package chapter1.operator;

public class Main {

    public static void main(String[] args) {

        int a = 10;
        int b = 3;

이렇게 놓고 봤을 때의

  • 산술 연산자

    // 기본적인 사칙연산
           int sum = a + b;
           System.out.println("sum = " + sum);
    
           int sub = a - b;
           System.out.println("sub = " + sub);
    
           int mul = a * b;
           System.out.println("mul = " + mul);
    
           // 나눗셈 소수점으로 나올 수 있도록
           double div = a / 3.0;
           System.out.println("div = " + div);

    나눗셈에서 주의할 점
    ➡️ 정수끼리 나누게 되면 소수점이 버려진다
    ➡️ 소수점을 유지하려면 소수점과 연산을 시켜야 한다

  • 모듈러 연산자

    // 모듈러 연산자(나머지 연산) - %
           int mod = 10 % 3;
           System.out.println("mod = " + mod);
           int mod2 = 15 % 4;
           System.out.println("mod2 = " + mod2);
           int mod3 = 20 % 7;
           System.out.println("mod3 = " + mod3);
    
           // 시간 연산
           int mod4 = (10 + 5) % 12;
           System.out.println("mod4 = " + mod4);
    
           // 짝수 홀수 연산
           int mod5 = 6 % 2;
           System.out.println("mod5 = " + mod5);
    
           int mod6 = 7 % 2;
           System.out.println("mod6 = " + mod6);
  • 대입 연산자

    // 대입 연산자
          int num = 5;
          System.out.println("num = " + num);
          // 복합 대입 연산자
          num += 3;
          // num = num + 3;
          // num + 3 먼저 보고, 그 다음에 num = 이렇게 볼 것
          System.out.println("num = " + num);
          // 5 + 3 = 8;
    
          num -= 2; // num = num - 2;
          System.out.println("num = " + num);
          // 8 - 2 = 6;
    
          num *= 2; // num = num * 2;
          System.out.println("num = " + num);
          // 6 * 2 = 12;
    
          num /= 3; // num = num / 3;
          System.out.println("num = " + num);
          // 12 / 3 = 4;
    
          num %= 3; // num = num % 3;
          System.out.println("num = " + num);
          // 4 % 3 = 1;
  • 증감 연산자

    // 증감 연산자
           num = 1;
           num++; // + 1;
           num++; // + 1;
           num--; // - 1;
           num--; // - 1;
           System.out.println("num = " + num);
           // 1 + 1 + 1 - 1 - 1 = 1;
    
           // 전위 연산(++i) - 연산 후 값이 활용된다
           int intBox = 5;
           System.out.println("(++intBox) = " + (++intBox));
           
           // 후위 연산
           int intBox2 = 5;
           System.out.println("(intBox2++) = " + (intBox2++));
           System.out.println("intBox2 = " + intBox2);
  • 비교 연산자

    // 비교 연산자
           // 같음 연산자(=) 같으면 true, 다르면 false
           System.out.println("10 == 10:" + (10 == 10));
    
           // 다름 연산자(!=) 다르면 true, 같으면 false
           System.out.println("10 != 5:" + (10 != 5));
    
           // 크기 비교 연산자
           System.out.println("10 < 5:"  + (10 < 5)); // false
           System.out.println("10 >= 10:" + (10 >= 10)); // true
           System.out.println("10 <= 5:" + (10 <= 5)); // false

  • 논리 연산자

    // 논리 연산자
          // AND 연산(&&) - 두 조건이 모두 참일 때 true 반환
          System.out.println("true && true: " + (true && true));
          System.out.println("true && false: " + (true && false));
          int age = 20;
          boolean isStudent = true;
          System.out.println("Student?: " + (age > 18 && isStudent));
    
          // OR 연산자(||) - 두 조건 중 하나라도 참이라면 true 반환
          System.out.println("false || true: " + (false || true));
    
          // NOT 연산자(!) - true -> false, false -> true
          System.out.println("!true: " + (!true));

  • 연산자 우선순위

    // 연산자 우선순위
          boolean flag = 10 + 5 > 12 && true;
          System.out.println("flag: " + flag);
          // 실행 순서: (10 + 5) > 12 && true : 산술
          // → 15 > 12 && true : 비교
          // → true && true : 논리
          // → flag = true 대입
          // () 활용하기 -> boolean flag = ((10 + 5) > 12) && true;
    
          // 논리 연산자 우선순위
          boolean result = true || (false && false);
          System.out.println("result: " + result);
    
          boolean result2 = true || false && !false;
          System.out.println("result2: " + result2);
    
          boolean result3 = 10 / 2 + 3 * 2 > 10 || false;
          System.out.println("result3: " + result3);
          // 실행 순서: ((10 / 2) + (3 * 2)) > 10 || false
          // → (5 + 6) > 10 || false
          // → 11 > 10 || false
          // → true || false
          // → true
    
          boolean result4 = 5 + 3 > 2 * 4 && 10 % 3 == 1;
          System.out.println("result4: " + result4);
          // 실행 순서: (5 + 3) > (2 * 4) && (10 % 3) == 1
          // → 8 > 8 && 1 == 1
          // → false && true
          // → false
  • 문자열 비교

    // 문자열 비교_equals() 를 활용한다
         String text = "hello";
         String text2 = "Hello";
         // 나쁜 예: (text == text2)
         boolean isEqual = text.equals(text2);
         System.out.println("isEqual: " + isEqual);

    ➡️ 실무에서 문자열을 비교할 때 == 를 사용하는 경우는 거의 없다
    ➡️ 문자열 비교는 항상 .equals() 를 활용 (동등성/동일성 문제)

⭐ 실습 과제

package chapter1.operator;

import java.util.Scanner;

public class MainAssignment {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = 15;
        int b = 4;


        // 1. 더하기
        int sum = a + b;
        System.out.println("sum: " + sum);

        // 2. 빼기
        int sub = a - b;
        System.out.println("sub: " + sub);

        // 3. 곱셈
        int mul = a * b;
        System.out.println("mul: " + mul);

        // 4. 나눗셈
        int div = a / b;
        System.out.println("div: " + div);
        
        // 5. 나머지 결과
        int mod = a % b;
        System.out.println("mod: " + mod);

        // 예상 출력
        // 1. 덧셈 결과: 19
        // 2. 뺄셈 결과: 11
        // 3. 곱셈 결과: 60
        // 4. 나눗셈 결과: 3
        // 5. 나머지 결과: 3



        int x = 5;
        int y = 10;

        // 두 개의 정수 x와 y가 주어졌을 때
        // 각각의 결과를 변수에 저장하고 출력하는 프로그램을 작성

        // 1. x가 y보다 큰지(>)
        boolean big = x > y;
        System.out.println("big?: " + big);
        // 2. x가 y보다 작은지(<)
        boolean small = x < y;
        System.out.println("small?: " + small);
        // 3. x와 y가 같은지(==)
        boolean same = x == y;
        System.out.println("same?: " + same);
        // 4. x와 y가 다르면(!=)
        boolean diff = x != y;
        System.out.println("diff?: " + diff);

        // 예상 출력
        // 1. x가 y보다 큰가? false
        // 2. x가 y보다 작은가? true
        // 3. x와 y가 같은가? false
        // 4. x와 y가 다른가? true



        // TODO: 사용자로부터 첫 번째 문자열 입력받기
        System.out.println("첫 번째 문자열을 입력하세요: ");
        String str1 = scanner.next();
        // TODO: 사용자로부터 두 번째 문자열 입력받기
        System.out.println("두 번째 문자열을 입력하세요: ");
        String str2 = scanner.next();
        // TODO: 문자열 비교 결과를 변수 result 에 저장
        boolean result = str1.equals(str2);
        // TODO: 결과 출력
        System.out.println("두 문자열이 같은가요? "  + result);

        // 예상 출력:
        // 첫 번째 문자열을 입력하세요: Java
        // 두 번째 문자열을 입력하세요: Java
        // 두 문자열이 같은가요? true
    }
}

⭐ 조건문

package chapter1.condition;

public class Main {

    public static void main(String[] args) {

        if (조건수식) {
            System.out.println("실행됩니다.");
        }
        System.out.println("...");
    }
}

이렇게 놓고 봤을 때

       // true -> 명령문 실행
       if (1 < 2) { 
           System.out.println("실행됩니다.");
       }
       System.out.println("...");

       // false -> 명령문 실행 X
       if (2 < 1) { 
           System.out.println("실행됩니다.");
       }
       System.out.println("...");

        // true -> 명령문 실행
        String light = "초록불";

        if (light.equals("초록불")) {
            System.out.println("건너세요!");
        } else {
            System.out.println("멈추세요!");
        }
        System.out.println("...");

        String light = "빨간불";

        if (light.equals("초록불")) {
            System.out.println("건너세요!");
        } else {
            System.out.println("멈추세요!");
        }
        System.out.println("...");

        String light = "노란불";

        if (light.equals("초록불")) {
            System.out.println("건너세요!");

        }  else if (light.equals("노란불")) {
            System.out.println("주의하세요!");

        } else {
            System.out.println("멈추세요!");
        }
        System.out.println("...");

⭐ Switch 문

        // switch 문
        int number = 7;

        switch (number) {
            case 1:
                System.out.println("1입니다");
                break;
            case 2:
                System.out.println("2입니다");
                break;
            default:
                System.out.println("1도 아니고 2도 아닙니다");

⭐ 실습 과제

package chapter1.condition;

import java.util.Scanner;

public class TrafficLight {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): ");
        String light = scanner.nextLine();

        if (light.equals("초록불")) {
            System.out.println("건너세요!");

        } else if (light.equals("노란불")) {
            System.out.println("주의하세요!");

        } else if (light.equals("빨간불")) {
            System.out.println("멈추세요!");

        }  else {
            System.out.println("잘못된 입력입니다.");
        }

        // 예상 출력:
        // 신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): 초록불
        // 건너세요!
        // 신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): 노란불
        // 주의하세요!
        // 신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): 빨간불
        // 멈추세요!
        // 신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): 파란불
        // 잘못된 입력입니다.
    }
}

⭐ 반복문

⭐ for

package chapter1.loop;

public class Main {
    public static void main(String[] args) {

        // for (시작조건; 종결조건; 조건변화수식) {}
        for (int i = 1; i <= 5; i++) {
        // i가 1일 때부터 반복을 시작; 조건이 TRUE 경우 반복/ FALSE 경우 반복X; 반복할 때마다 조건 변화시키는 수식)
            System.out.println("안녕하세요!");
        }

        int customers = 5;
        for ( int k = 1; k <= customers; k++ ) {
            if (k == 4) {
                break;
            }
            if (k == 2) {
                continue;
            }
            System.out.println(k + "번째 손님 안녕하세요!");
        }

➡️ break는 loop를 끝내는 기능

➡️ continue는 skip 기능

⭐ while

        // 반복문 while
        int j = 1;
        while (j <= 3) {
            System.out.println("26번: 안녕하세요!");
            j++;
        }

        // 반복문 do-while
        int p = 1;
        do {
            System.out.println("33번 안녕하세요!");
            p++;
        } while(p <= 3);

⭐ 실습 과제

구구단 입력받고 출력하기

package chapter1.loop;

import java.util.Scanner;

public class Gugudan {
    public static void main(String[] args) {
        Scanner scanner =new Scanner(System.in);

        System.out.println("출력할 구구단 단수를 입력하세요 (2~9): ");
        int dan = scanner.nextInt();

        if (dan >= 2 && dan <= 9) {
            System.out.println("==== " + dan + "단 ====");
            int i = 1;
            while (i <= 9) {
                System.out.println(dan + " x " + i + " = " + (dan * i++));
            }
        } else {
            System.out.println("2 ~ 9 사이의 숫자를 입력해주세요!");
        }
    }
}

        // 출력예시:
        // 출력할 구구단 단수를 입력하세요 (2~9): 3
        // ==== 3단 ====
        // 3 x 1 = 3
        // 3 x 2 = 6
        // 3 x 3 = 9
        // 3 x 4 = 12
        // 3 x 5 = 15
        // 3 x 6 = 18
        // 3 x 7 = 21
        // 3 x 8 = 24
        // 3 x 9 = 27

구구단 연속으로 모두 출력하기

package chapter1.loop;

public class Gugudan2 {
    public static void main(String[] args) {

        for (int dan = 2; dan <= 9; dan++) {
            System.out.println("==== " + dan + " ====");

            for (int i = 1; i <= 9; i++) {
                System.out.println(dan + " x " + i + " = " + (dan * i));
            }
            System.out.println(); // 간격 띄우기
        }
    }
}

⭐ 배열

package chapter1.array;

public class Main {
    public static void main(String[] args) {

        // 모험가 명단을 관리하는 법
        String name1 = "gygim";
        String name2 = "Steve";
        // ...

        String[] adventureList = {"gygim", "Steve", "..."};

        // 1. 배열 선언
        int[] arr;

        // 2. 배열 길이 할당
        arr = new int[5];
        // arr = [] [] [] [] []

        // 3. 배열 선언과 길이 동시에 할당
        int[] arr2 = new int[5];
        // arr2 = [] [] [] [] [] <- 빈공간

        // 4. 배열 선언과 동시에 배열의 요소 할당
        int[] arr3 = {10, 20, 30, 40, 50};
        // [10] [20] [30] [40] [50]

        // 배열의 길이
        int arr3Length = arr3.length;
        System.out.println("arr3Langth = " + arr3Length);

        // 문자열 배열 선언
        String[] starArr = new String[5];
        // [""] [""] [""] [""] [""]

        // 논리형 배열 선언
        boolean[]  boolArr = new boolean[3];
        // [true] [false] [true]

⭐ 배열의 요소에 접근: 인덱스 활용 방법 & 향상된 for 문

        // 배열의 요소에 접근: 인덱스 활용 방법
        int[] arr4 = {10, 20, 30, 40, 50};
        //            [0] [1] [2] [3] [4]
        System.out.println("배열의 1 번째 요소 접근: " + arr4[0]);
        System.out.println("배열의 2 번째 요소 접근: " + arr4[1]);
        System.out.println("배열의 3 번째 요소 접근: " + arr4[2]);
        System.out.println("배열의 4 번째 요소 접근: " + arr4[3]);
        System.out.println("배열의 5 번째 요소 접근: " + arr4[4]);

        arr4[0] = 100;
        arr4[1] = 200;
        arr4[2] = 300;
        arr4[3] = 400;
        arr4[4] = 500;
        System.out.println("배열의 1 번째 요소 접근: " + arr4[0]);
        System.out.println("배열의 2 번째 요소 접근: " + arr4[1]);
        System.out.println("배열의 3 번째 요소 접근: " + arr4[2]);
        System.out.println("배열의 4 번째 요소 접근: " + arr4[3]);
        System.out.println("배열의 5 번째 요소 접근: " + arr4[4]);
        //   0     1     2     3     4
        // [100] [200] [300] [400] [500]
        // 인덱스 사용시 순서 주의. 0부터 시작. 범위 벗어나면 오류남

        // 배열 탐색
        int arr4Length = arr4.length;
        System.out.println("arr4Langth = " + arr4Length);

        for (int i = 0; i < arr4.length; i++) {
            System.out.println("인덱스: " + i + ", 값: " + arr4[i]);
        }

        // 향상된 for 문
        // arr4 [100] [200] [300] [400] [500]
        for (int a : arr4) {
            System.out.println("값: " + a);
        }

        // boolean[][] board = new boolean[2][3];
        // [] [] []
        // [] [] []
        // boolean[][] board = new boolean[1][4];
        // [] [] [] []
        boolean[][] board = {
                {true, false},
                {false, true}
        };
        System.out.println(board[0][0]);
        System.out.println(board[0][1]);

⭐ 실습 과제

  • 아래의 정수 배열이 주어졌을 때 짝수만 출력하세요

    배열 예시: {3, 4, 7, 10, 15, 20}

  • 아래의 정수 배열의 누적합을 구하세요

    배열 예시: {2, 5, 8}

  • 2차원 배열에서 검은돌(true)의 좌표(x, y) 찾기

package chapter1.array;

public class EvenNumberFinder {
    public static void main(String[] args) {

        int[] num = {3, 4, 7, 10 ,15, 20};

        System.out.println("짝수: ");

        for (int i = 0; i < num.length; i++) {
            if (num[i] % 2 == 0) {     // i 를 2로 나눈 나머지가 0이면 짝수라는 뜻
                System.out.println(num[i] + "");
            }
        }

        System.out.println();



        int[] num2 = {2, 5, 8};
        int sum = 0;

        for (int f = 0; f < num2.length; f++) {
            sum += num2[f];
        }

        System.out.println("누적합: " + sum);

        System.out.println();



        boolean[][] board = {
                {true, false},
                {false, true}
        };
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[i].length; j++) {
                if (board[i][j]) {
                    System.out.println("검은돌(●) 위치: " + "(" + i + "," + j + ")");
                }
            }
        }

    }
}

➡️ System.out.println("검은돌(●) 위치: " + "(" + i + "," + j + ")");
➡️ System.out.println("검은돌(●) 위치: (" + i + "," + j + ")"); 이렇게 수정 가능

⭐ Method

package chapter1.method;

public class Calculator {

        // 매서드 선언 - 두 수를 더합니다.
        int sum(int value1, int value2) {
            int result = value1 + value2;
            return result;
        }
    }
package chapter1.method;

public class Main {
    public static void main(String[] args) {
        // 1. 객페를 인스턴스화(소환/객체화)
        Calculator calculator = new Calculator();

        // 1. 매서드(함수)를 호출
        int result = calculator.sum(1, 2);
        System.out.println("result = " + result);

    }
}

➡️ 복습필요

profile
꾸준한 공부만이 답이다

0개의 댓글