230419 백엔드 부트캠프 7일차

정동아·2023년 4월 18일
0

백엔드 부트캠프

목록 보기
7/41

배울 내용
1. 제어문 - 반복문
2. 반복문 연습문제 풀이

배운 내용

  1. 제어문 - 반복문
    반복문의 종류로는 for문, while문, do-while문이 있다.
    for문은 반복 횟수를 알고 있을 때, while문은 조건에 따라 반복할 때 주로 사용한다.
    for 문은 요렇게 초기화식이나 증감식이 둘 이상이 될 수 있다.
for(int i=0, j=100; i<=50 && j>=50; i++, j--) {
  실행문;
  실행문;
}

자바에서는 향상된 for문을 제공한다.ㅣ
향상된 for문은 배열 및 컬렉션 항목의 개수만큼 반복하고 자동으로 for문을 빠져나간다.

public class EnhancedForLoop {
  public static void main(String[] args) throws Exception {
    String[] menu = {"마라탕", "떡볶이", "꿔바로우"};
    for(String list : menu) {
      System.out.println(list + "하나 주세요.");
    }
  }
}
/*
마라탕 하나 주세요. 
떡볶이 하나 주세요. 
꿔바로우 하나 주세요.
*/

While문 과 do-while문의 차이는
while문은 시작할 때부터 조건식을 검사해서 블록 내부를 실행할지 결정하지만
do-while문은 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라 반복 실행을 계속할지 결정한다.

  1. 반복문 연습문제 풀이
    1~5시 까지 페어와 반복문 관련 연습문제를 푸는 시간을 가졌다.
    반복문부터 어려워서.. 페어랑 이게 뭐죠..? 하면서 영차영차 풀었다.
    막혔던 가장 큰 이유는, 응용력이 떨어져서인거같다.
    예를 들면.. for문에서 변수와 내부에서 증감하는 변수를 다른걸 사용할 수 있는데 이걸 생각 못했다던가, 변수를 변수로 선언하면 되었는데 그런.. 응용력이 부족했다.
    이런 부분은 문제를 계속 다시 풀고 혼자 수도코드부터 다시 작성해서 풀면서 손으로 익혀야겠다.

피드백
어제 다 풀지 못한 제어문 문제를 수업시간 이후에 풀었다.
얼레벌레해서 정답은 맞혔지만, 레퍼런스 코드를 보니 '아.. 이렇게 간단하게 짤 수 있었구나..' 하게 되었다.
그 중 예시는
피타고라스 정리가 맞는지 판별하는 문제였는데 (저작권에 위반될까바 다 첨부하진 못하겠다.)

    if ( side1 > side2 && side1 > side3){
      int a = (side2 * side2) + (side3 * side3);
      int b = (side1 *side1);
      return a==b;
    }
     if ( side2 > side1 && side2 > side3){
      int c = ( side1 * side1) + (side3 *side3);
      int d = (side2 * side2);
      return c==d;
    }

    if (side3> side1 && side3 > side2){
      int e = (side1 * side1) + (side2 * side2);
      int f = (side3 * side3);
      return e==f;
    }

    return false;

이런식으로 하나하나 경우 따져서 곱하고 난리 부르스를 쳤는데, 레퍼런스는
제곱한것들을 각각 변수에 넣어놓고 그걸 꺼내서 OR을 사용해 IF문 조건으로 사용했다.
좀 더 효율성있게 코드를 작성할 수 있도록 더 많은 레퍼런스를 보고, 한번 더 생각해봐야겠다...

0개의 댓글