-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
240611 #2406
base: main
Are you sure you want to change the base?
240611 #2406
Conversation
@@ -1,7 +1,18 @@ | |||
package racingcar; | |||
//아래 4줄 readline 쓰기 위함, try-catch 쓸때 사용 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사용하지 않는 import는 지우는 게 좋아요
인텔리제이에 자동으로 정리해주는 단축키가 있으니 찾아보는 걸 추천해요 😄
import camp.nextstep.edu.missionutils.Randoms; | ||
|
||
public class Driving { | ||
public void showResult(String[] car, String[] drive, int game) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
배열을 사용하기 보다는 유지보수 등 타입 변경으로 인한 사용의 편리함??을 위해
컬렉션을 사용하는 것을 추천해요
int random = Randoms.pickNumberInRange(1, 9); // 난수를 매번 발생시킴 | ||
if (random >= 4) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리터럴 값을 사용하기 보다는 매직 넘버를 사용해보는 건 어떨까 싶어요
매직 넘버
매직 넘버에 관한 괜찮았던 블로그 참고해보세요
그리고 기능 안에서 랜덤 값을 발생하게 되면 테스트할 때 쉽지 않을 것 같다고 생각이 들어요...
이 부분에 대해서 한 번 생각해보시면 좋을 것 같아요
// 경주할 자동차 이름 , 기준으로 입력받기 | ||
private String[] getCar() { | ||
System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); | ||
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
System.in으로 입력 받기 보단
README에 알려준 라이브러리를 사용해서 입력을 받는 게 좋았을 것 같아요 😢
|
||
try { | ||
name = br.readLine(); | ||
car = name.split(",", 5); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
split()
에 2번째 인수에 limit으로 5로 제한을 주셨는데
5로 제한을 준 이유가 궁금해요 ❓
name = br.readLine(); | ||
car = name.split(",", 5); | ||
check(car); | ||
} catch (IOException | IllegalAccessException e) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IllegalAccessException.class
접근에 관한 예외 처리를 해준 이유가 있을까요?
int game = 0; | ||
try { | ||
game = Integer.parseInt(br2.readLine()); | ||
} catch (IOException e) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
입력에 대한 IOException.class
와 정수로 변환하는 NumberFormatException.class
도 같이
처리했으면 더 좋았을 것 같아요
// 제일 긴 주행거리 구하기 | ||
private int pick(String[] drive) { | ||
int length = 0; | ||
for (int i = 0; i < drive.length; i++) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
일반 for문이 아닌 foreach로 구현했으면 어땠을까 생각이 들어요
|
||
// 경주할 자동차 이름 , 기준으로 입력받기 | ||
private String[] getCar() { | ||
System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
출력하는 부분은 따로 메소드로 만들어도 좋을거 같아요~~
} | ||
|
||
// car 이름 5자인지 확인하기 | ||
private void check(String[] car) throws IllegalAccessException { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
위에 있는 메소드와 차이점이 있을까요??
기능이 비슷해 보여서요???
No description provided.