김도완_backend 2주차 과제제출#3
Conversation
| } | ||
| // 자동차를 배열로 받고 시행횟수 받고 배열만들고 | ||
| // 랜덤함수 돌리고 숫자 넘으면 -를 배열에 들어간 숫자만큼 반복하고 | ||
| //비교 하고 최종우승자 나오게해보자 No newline at end of file |
There was a problem hiding this comment.
깃허브에 코드를 올릴때는 맨 마지막 라인에 공백이 들어와야 해요!
자료 참고바랍니당
| if (cars[i].isEmpty()) { | ||
| throw new IllegalArgumentException("이름은 비어 있을 수 없음"); | ||
| } | ||
| if (!cars[i].equals(cars[i].trim())) { | ||
| throw new IllegalArgumentException("이름에 공백 불가"); |
There was a problem hiding this comment.
두 조건문을 String.isBlank() 메소드로 대체할 수 있어 보여요.
| } | ||
| } | ||
| System.out.println("시도할 회수는 몇회인가요?"); | ||
| String input = sc.nextLine(); |
There was a problem hiding this comment.
시도 횟수를 입력받을 때 처음부터 sc.nextInt()를 사용하지 않은 이유가 있으신가요?
There was a problem hiding this comment.
자바를 처음 배워서 블로그를 참조하였는데 블로그에서 저런식으로 문자열로 받고 정수형 변환하는 것을 보고 배웠는데 더 단순하게 할 수 있었네요!!
| } catch (NumberFormatException e) { | ||
| throw new IllegalArgumentException("횟수는 숫자여야 함"); //catch에 있는 문장을 읽고 IllegalArgumentException을 통하여 프로그램 종료 | ||
| } | ||
| int[] arr = new int[cars.length]; |
There was a problem hiding this comment.
이 배열은 자동차의 위치를 저장하는 배열로 보이는데 이렇게 되면 자동차의 이름 배열, 자동차의 위치 배열로 분리되어 관리 포인트가 2개가 되므로 클래스를 사용해서 하나로 합치는건 어떻게 생각하시나요??
| int randNum = Randoms.pickNumberInRange(0, 9); //기존에 import java.util.Random을 사용하였었는데 테스트가 통과하지 않아 바꿨습니다! | ||
| if (randNum >= 4) { | ||
| arr[j] += 1; | ||
| } |
There was a problem hiding this comment.
| int randNum = Randoms.pickNumberInRange(0, 9); //기존에 import java.util.Random을 사용하였었는데 테스트가 통과하지 않아 바꿨습니다! | |
| if (randNum >= 4) { | |
| arr[j] += 1; | |
| } | |
| if (Randoms.pickNumberInRange(0, 9) >= 4) { | |
| arr[j] += 1; | |
| } |
이렇게 하면 randNum이라는 변수가 더이상 필요하지 않아보여요!
There was a problem hiding this comment.
이렇게 하면 randNum도 필요없고 코드가 더 짧아지네요!
| for (int k = 0; k < arr[j]; k++) { | ||
| System.out.print("-"); | ||
| } |
There was a problem hiding this comment.
반복문으로도 할 수 있지만, String.repeat() 메소드가 있습니다!
찾아보시는걸 추천드려요.
BaeJinho4028
left a comment
There was a problem hiding this comment.
아주 깔끔합니담.
크게 리뷰할 것이 없네여.
고생하셨습니담
| private final String[] cars; | ||
| private final int[] positions; |
There was a problem hiding this comment.
cars와 positions를 병렬 배열로 관리하기보다 자동차 객체가 이름과 이동 횟수를 함께 가지도록 하면 상태 응집도가 더 높아질 것 같습니다.
| @@ -0,0 +1,40 @@ | |||
| package racingcar; | |||
|
|
|||
| public class Exception { | |||
There was a problem hiding this comment.
클래스명이 Exception인 것은 좋지 않아 보입니다. 자바 기본 예외 타입인 Exception과 이름이 겹쳐 역할이 모호해질수도 있습니다. 입력 검증과 관련된 네이밍이면 좋을 것 같습니다
| package racingcar; | ||
|
|
||
| public class Exception { | ||
| public static void ExceptionName(String[] cars){ |
There was a problem hiding this comment.
ExceptionName, InputNames처럼 대문자로 시작하고 있는데, 자바 컨벤션에서는 메서드는 camelCase로 작성하는 것이 일반적입니담

No description provided.