내배캠 TIL 8일차

오병택·2025년 2월 26일

내배캠

목록 보기
30/73

8일차 요약

과제 lv1 계산기 만들기, 인텔리제이 깃허브 연결, 코드 리뷰

lv1 계산기

import java.util.Scanner;

public class lv1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int exit = 0;
        while (exit!=1) {
            long x;
            long y;
            while (true) {
                try {
                    System.out.print("첫 번째 양의 정수(0 포함)를 입력해주세요: ");
                    x = scanner.nextLong();
                    System.out.print("두 번째 양의 정수(0 포함)를 입력해주세요: ");
                    y = scanner.nextLong();
                    if (x<0 || y<0) {
                        System.out.println("음수를 적으셨습니다. 다시 입력해주세요.");
                        continue;
                    }
                }catch(Exception e){
                    scanner.nextLine();
                    System.out.println("숫자만 입력해주세요");
                    continue;
                }
                break;
            }

            while (true) {
                System.out.print("사칙연산 기호를 입력하세요: ");
                String z = scanner.next();
                char z1 = z.charAt(0);

                if (z1 == '+') {
                    System.out.println("더한 값: "+ (x+y));
                }else if (z1 == '-') {
                    System.out.println("뺀 값: "+ (x-y));
                }else if (z1 == '*') {
                    System.out.println("곱한 값: "+ (x*y));
                }else if (z1 == '%') {
                    try {
                        if (!(x % y == 0)) {
                            double y1=(double)y;
                            System.out.println("나눈 값: "+ (x/y1));
                        }else {
                            System.out.println("나눈 값: "+ (x/y));
                        }
                    }catch (Exception e) {
                        System.out.println("0으로 나눌 수 없습니다. 다시 입력해주세요");
                        continue;
                    }
                }else {
                    System.out.println("잘못된 사칙연산 기호입니다");
                    continue;
                }
                break;
            }

            scanner.nextLine();
            System.out.println("더 계산하시겠습니까? (exit 입력시 종료, 다른 입력시 계속)");
            String s = scanner.nextLine();
            if (s.equals("exit")) {
                exit=1;
                System.out.println("종료하겠습니다");
            }else {
                exit=0;
            }
        }
    }
}

계산기 만드는 게 생각보다 오래 걸렸다. 하지만 깃허브 연결하고 올리는게 더 오래 걸렸다. 깃이랑 깃허브 다루는 게 너무 어려워서 혼자 이것저것 해보다가 너무 여기에 머무르고 있는 것 같아서 튜터님을 찾아가서 간신히 해결했다.

알게된 점

  • git clone을 하면 default인 브랜치가 복사됨.

  • 기본이 아닌 다른 브랜치를 클론하려면 git clone -b 브랜치명 <저장소 URL>를 해야 함.

  • origin == 로컬 저장소가 연결된 원격 저장소

  • git fetch origin // origin의 최신 변경 사항 가져오기 (로컬 적용 X)

  • git remote update // origin을 포함한 모든 원격 저장소의 최신 변경 사항을 가져오기 (로컬 적용 X)

코드 리뷰

위의 작성한 코드를 팀원분들께 리뷰 받아보았다.

개선 사항

  1. 클래스는 첫 문자는 대문자로 쓰는게 default
  2. while의 flag를 boolean으로 쓰는게 좋을 것 같다. 0과 1 밖에 값을 안 받으니
  3. 아래 코드 부분 합치기
String z = scanner.next();
char z1 = z.charAt(0);
  1. exception unchecked로 바꾸기
  2. switch 표현식으로 간결하게 바꿔보기

느낀 점

깃과 깃허브가 많이 익숙해져야 할 것 같다. 그래도 허우적 거리면서 얻어가는 게 있었던 것 같다. 코드 리뷰 시간에 나도 코드 리뷰를 해드리고 싶었는데 아는 만큼 보인다는 말과 같이 실력이 많이 부족하여 아쉬웠다. 물론 코드 리뷰 받는 것은 생각보다 재밌었다. 나도 잘해져서 코드 리뷰 해줄 수 있는 사람이 되고 싶다. 화이팅!

profile
걱정하지 말고 일단 해봐!

0개의 댓글