2024.05.15(수) 슈퍼코딩 부트캠프 백엔드/Spring 네이버 인턴 Day 3 일일보고

usnim·2024년 5월 15일
0

super_coding

목록 보기
13/35

📋 TO-DO LIST

네이버 클라우드 활동 [o]

3주 3일차 강의 [o]

네이버 클라우드 사수 도움 요청 업무 [o]

팀장님 지시 업무 [o]

중간/일일 업무 보고 작성 [o]

정기 팀/동기 스터디 모임 참석 및 성실도 [x] == 정기 팀 회의 없는 날 (공휴일)

📍 학습 내용 정리

Java 조건문

프로그램의 흐름을 제어하는 데 사용됩니다.

조건문은 주어진 조건이 참(true)인 경우에만 특정 코드 블록을 실행하거나 건너뛸 수 있도록 합니다.

주로 if, else if, else 키워드를 사용하여 조건문을 작성합니다.

if

  if (condition) {
      // 실행할 코드
  }

else if

  if (condition1) {
      // 실행할 코드
  } else if (condition2) {
      // 다른 코드 실행
  }

else


  if (condition1) {
      // 실행할 코드
  } else if (condition2) {
      // 다른 코드 실행
  } else {
      // 모든 조건이 거짓일 때 실행할 코드
  }

삼항연산자

  variable = (condition) ? value1 : value2;

//condition이 참이면 value1을 변수에 할당하고, 거짓이면 value2를 할당합니다.
//조건문과 삼항 연산자를 적절히 활용하여 프로그램의 흐름을 제어하고 값을 할당할 수 있습니다.
//이를 통해 코드를 간결하게 작성하고 효율적으로 조건을 처리할 수 있습니다.

실습

public class AvocadoSituation {
    public static void main(String[] args) {
        int milkCount = 0;
        int avocadoCount = 0;
        boolean existedAvocado = true;

        // 조건문을 삼항 연산자로 변경
        milkCount = (existedAvocado) ? 6 : 0;

        String comment = String.format("장보고 돌아왔어 %d개 아보카도, %d개 우유 사왔어", avocadoCount, milkCount);
        System.out.println(comment);
    }
}
import java.util.logging.Logger;

public class DepartmentStore {
    private static final Logger logger = Logger.getLogger(DepartmentStore.class.getName());

    public static void main(String[] args) {
        int usageAmount = 5000;
        int parkingTime = 6;
        int parkingTimeDiscount = 0;
        int totalParkingTime = 0;

        if (usageAmount >= 200000) {
            parkingTimeDiscount = 5;
        } else if (usageAmount >= 100000) {
            parkingTimeDiscount = 4;
        } else if (usageAmount >= 50000) {
            parkingTimeDiscount = 3;
        } else if (usageAmount >= 30000) {
            parkingTimeDiscount = 2;
        } else if (usageAmount >= 10000) {
            parkingTimeDiscount = 1;
        } else {
            String unsatisfied = String.valueOf("할인 최소 금액이 충족되지 않아 할인이 불가능합니다.");
            logger.info(unsatisfied);
        }

        totalParkingTime = parkingTime - parkingTimeDiscount;
        String result = String.format("고객님 %d원를 사용하셔서 %d시간 결제하셔야합니다.", usageAmount, totalParkingTime);
        logger.info(result);
    }
}

Java 반복문

초기화식: 반복문 진입 시 한 번만 실행되는 초기화 코드

조건식: 각 반복마다 평가되는 조건

증감식: 각 반복이 끝난 후 실행되는 코드

for


  for (초기화식; 조건식; 증감식) {
      // 실행할 코드
  }

while


  while (조건식) {
      // 실행할 코드
  }

이중 for

for(초기화식; 조건식; 증감식){ // 외부 for문
   for(초기화식; 조건식; 증감식){ // 내부 for문
      // 실행할 코드
    }
}

실습

  import java.util.logging.Logger;
// for문
  public class ForLoop {
      private static final Logger logger = Logger.getLogger(ForLoop.class.getName());

      public static void main(String[] args) {
          int sum = 0;
          for (int i = 1; i <= 10; i++) {
              sum += i;
          }
          logger.info(String.valueOf(sum));
      }
  }
import java.util.logging.Logger;
// while문
public class Gugudan {
    private static final Logger logger = Logger.getLogger(Gugudan.class.getName());

    public static void main(String[] args) {
        for (int i = 2; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                String result = String.format("%d X %d = %d", i, j, i * j);
                logger.info(result);
            }
        }
    }
}
import java.util.logging.Logger;
// 이중 for문
 public class Gugudan {
     private static final Logger logger = Logger.getLogger(Gugudan.class.getName());

     public static void main(String[] args) {
         for (int i = 2; i < 10; i++) {
             for (int j = 1; j < 10; j++) {
                 String result = String.format("%d X %d = %d", i, j, i * j);
                 logger.info(result);
             }
         }
     }
 }

Java 배열

배열 선언과 초기화

배열 선언: 배열을 선언할 때는 데이터 타입 뒤에 []를 붙입니다

  int[] numbers;

배열 생성 : new 키워드를 사용하여 배열을 생성하고 크기를 지정합니다.

  numbers = new int[5]; // 5개의 정수를 저장할 배열 생성

배열 요소 접근

배열 요소 할당: 인덱스를 사용하여 배열 요소에 값을 할당합니다.

numbers[0] = 10;
numbers[1] = 20;

배열 요소 읽기 : 인덱스를 사용하여 배열 요소의 값을 읽습니다.

int x = numbers[0]; // x에는 numbers 배열의 첫 번째 요소인 10이 저장됨

실습

public class ArrayIndex {
    public static void main(String[] args) {
        int[] scores = {90, 87, 88, 75, 99, 65};
        int score1 = scores[0];
        System.out.println(score1);

        scores[2] = 93;
        System.out.println(Arrays.toString(scores));

        //Error (out of bounds for length)
        //int score6 = scores[6];
        //System.out.println(score6);
    }
}

다차원 배열

배열의 배열로 구성되며, 2차원 배열, 3차원 배열 등 다차원 배열을 생성할 수 있습니다.
각 차원마다 배열을 중첩하여 구현합니다.

2차원 배열 선언

  int[][] twoDArray = new int[3][4]; // 3행 4열의 2차원 배열 생성

2차원 배열 초기화

  int[][] twoDArray = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};


// 3차원도 가능한거 같지만 아직 학습 전

Java 배열 복사

Arrays.copyOf()

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = Arrays.copyOf(sourceArray, sourceArray.length);

for문을 사용한 수동복사

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[sourceArray.length];

for (int i = 0; i < sourceArray.length; i++) {
    targetArray[i] = sourceArray[i];
}

clone()

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = sourceArray.clone();

📍 일일보고

부족한 점 : 반복문을 사용하는 것과 조건문을 적용할 때 조건식의 범위 지정시 순서를 매기는 것을 연습해야할거 같다.

스스로 시도해본 것들 :

과제로 받은 다이아몬드 찍기

public class Diamond {
    public static void main(String[] args) {
        int size = 5;  // 주어진 사이즈는 3,5,10 (다이아몬드의 높이)

        // 위쪽 삼각형 부분
        for (int i = 1; i <= size; i++) {
            // 공백 출력하는 부분
            for (int j = size; j > i; j--) {
                System.out.print(" ");
            }
            // * 출력하는 부분
            for (int k = 1; k < (i * 2); k++) {
                System.out.print("*");
            }
            // 줄 띄우는 부분
            System.out.println();
        }

        // 아래쪽 삼각형 부분
        for (int i = size - 1; i >= 1; i--) {
            // 공백 출력하는 부분
            for (int j = size; j > i; j--) {
                System.out.print(" ");
            }
            // * 출력하는 부분
            for (int k = 1; k < (i * 2); k++) {
                System.out.print("*");
            }
            // 줄 띄우는 부분
            System.out.println();
        }
    }
}

해결 내용 : 주석내용 참고

알게된 점 : for문안에 두 개의 for문을 사용해야 한다는 점을 생각하는 부분에서 고민하는 시간이 길었다. 실무에서는 for문을 어떻게 사용하는지 궁금하다.

헷갈리거나 실수한 점 : 인덱스와 루프 조건을 설정하는것에서 고민하는데 상당 시간을 소비했고, 반복문의 로직을 이해하는데 어려움을 느꼈다.

회고 : 3주 3일차에 Java 기초를 수강했는데 기존에 활용한 Javascript와는 많이 달라
새로운 언어를 배우는 것이 걱정했던것 보다 재밌고 다른 문법들을 적용하는것도 흥미로웠다.

profile
🤦‍♂️

0개의 댓글