-
Notifications
You must be signed in to change notification settings - Fork 2
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
Java baseball game 한대희 #2
base: main
Are you sure you want to change the base?
The head ref may contain hidden characters: "java_baseball_game_\uD55C\uB300\uD76C"
Conversation
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.exit(0); | ||
} | ||
|
||
|
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.
소개해드렸던 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
배열 대신 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nxt가 1일때 처리는 안 해줘도 정상적으로 작동하지 않을까요?
} | ||
} | ||
|
||
public static void baseball_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.
basball_game
메서드를 BaseballGame
클래스로 따로 분리하여 관리하는게 어떨까요?
또한 자바 프로그래밍에서는 클래스, 인터페이스, 메소드, 변수의 이름을 지을 때 대중적으로 Camel Case
를 사용합니다. 이 점도 참고해보시면 좋을 것 같아요.
} | ||
} | ||
|
||
public static void setting_answer() { |
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.
위에서 말씀드린 것과 동일하게 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
프로그래밍 요구사항을 보면, 다음과 같이 나와있습니다.
- 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IllegalArgumentException
처리 잘 하셨네요👍
|
||
public static void main(String[] args) { | ||
|
||
while(true) { |
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.
명확한 하나의 종료조건이 있는 상황에서 while(true)중 exit(0)하기보다 종료 조건을 명시하는 게 좋지 않을까요?
껍데기만 멀쩡한 코드 같네요..
공부해서 열심히 고쳐보겠습니다