Conversation
shkisme
left a comment
There was a problem hiding this comment.
자바 프로그래밍 처음인거 맞나요? 처음이신데 굉장히 잘 하셨네요!!👍
특히 로직은 굉장히 잘 짜시는 것 같습니다. 클래스로 분리하는 부분은 좀 연습해보시면 실력이 금방 느실 것 같네요👍👍
리뷰 읽어보시고 수정사항 반영해주세요~!
| System.exit(0); | ||
| } | ||
|
|
||
|
|
There was a problem hiding this comment.
소개해드렸던 formatter를 사용해보시는게 좋을 것 같습니다! 포메터 적용을 하지 않으면, 수정사항이 띄어쓰기까지 반영되면서 나중에 확인할 때 불편하다는 단점이 있습니다.
https://withhamit.tistory.com/411
|
|
||
| public class Main { | ||
| private static int[] answer = new int[]{0, 0, 0}; | ||
| private static boolean[] isExist = new boolean[10]; |
There was a problem hiding this comment.
배열 대신 List를 사용해보시는 건 어떨까요? 이번 프로젝트에서는 문제 될 게 없지만, Effective java item 28을 보면, 배열보다는 리스트를 사용하라는 이야기가 나와있습니다. 책을 갖고 계시지 않을 것 같아 아래에 블로그 주소를 참고하셔서 한번 공부해보셔도 좋을 것 같아요.
|
|
||
| public static void baseball_game() { | ||
| boolean isPlay = true; | ||
| Scanner sc = new Scanner(System.in); |
There was a problem hiding this comment.
Scanner , Random 같은 클래스들은 따로 Util 클래스를 만들어서 거기에 public static으로 열어두고 사용하는 것은 어떨까요?
| try { | ||
| int nxt = Integer.parseInt(sc.nextLine()); | ||
| if(nxt == 0) System.exit(0); | ||
| else if(nxt == 1) continue; |
There was a problem hiding this comment.
nxt가 1일때 처리는 안 해줘도 정상적으로 작동하지 않을까요?
| } | ||
| } | ||
|
|
||
| public static void baseball_game() { |
There was a problem hiding this comment.
basball_game 메서드를 BaseballGame 클래스로 따로 분리하여 관리하는게 어떨까요?
또한 자바 프로그래밍에서는 클래스, 인터페이스, 메소드, 변수의 이름을 지을 때 대중적으로 Camel Case를 사용합니다. 이 점도 참고해보시면 좋을 것 같아요.
| } | ||
| } | ||
|
|
||
| public static void setting_answer() { |
There was a problem hiding this comment.
위에서 말씀드린 것과 동일하게 setting_answer 메서드도 SettingAnswer 클래스로 분리하시면 좋을 것 같습니다😄
| for(int i=2 ; i>=0 ; i--) { | ||
| int now = number % 10; | ||
| number /= 10; | ||
| if(isExist[now]) { |
There was a problem hiding this comment.
프로그래밍 요구사항을 보면, 다음과 같이 나와있습니다.
- indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
- 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
- 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
클래스를 분리하고, 메서드를 역할에 따라 나눠보시다 보면 해결될 문제같습니다!
| int nxt = Integer.parseInt(sc.nextLine()); | ||
| if(nxt == 0) System.exit(0); | ||
| else if(nxt == 1) continue; | ||
| } catch (IllegalArgumentException e) { |
There was a problem hiding this comment.
IllegalArgumentException 처리 잘 하셨네요👍
|
|
||
| public static void main(String[] args) { | ||
|
|
||
| while(true) { |
There was a problem hiding this comment.
명확한 하나의 종료조건이 있는 상황에서 while(true)중 exit(0)하기보다 종료 조건을 명시하는 게 좋지 않을까요?
껍데기만 멀쩡한 코드 같네요..
공부해서 열심히 고쳐보겠습니다