Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // [INFO]
- // #1 최상위 패키지 (root package)는 사용하지 않는 것을 권장합니다.
- // #2 가급적 클래스의 용도 혹은 분류를 직관적으로 파악할 수 있는 패키지 경로를 사용해야 합니다.
- // #3 패키지 명칭은 알파벳 소문자로만 정의합니다.
- package algospot.exam.mercy;
- import java.util.Scanner;
- // [INFO]
- // #1 클래스 자체에 대한 설명(요약) 주석을 작성하는 것이 좋습니다.
- // #2 클래스의 용도 혹은 기능을 나타내는 짧은 제목 혹은 설명을 입력해두면 코드 이해와 기능 찾기에 유리합니다.
- // #3 작성자 연락처를 기입하는 것은 다른 개발자가 버그를 발견했을 때, 원작자에게 통보하거나 논의할 수 있도록 해줍니다.
- // #4 JavaDoc 형식으로 주석(comment)를 작성하면, 문서화 작업이 수월해집니다.
- /**
- * <pre>
- * AlgoSpot Quiz in tutorial
- * Mercy https://algospot.com/judge/problem/read/MERCY
- * </pre>
- *
- * @author "Sunny Kwak" (sunnykwak@hanmail.net)
- */
- public class AlgoSpotMercy {
- // [INFO]
- // #1 뚜렷한 의미를 가지는 값(수치, 문자열)은 값 자체를 직접 사용하기 보다는 '상수 선언'을 하면 좋습니다.
- // #2 값 자체 (ex : 1, "title") 보다는 상수 명칭이 가독성과 의미 파악 면에서 좋습니다.
- private static final int MIN_INPUT_NUMBER = 1;
- private static final int MAX_INPUT_NUMBER = 10;
- public static void main(String[] args) {
- // [INFO]
- // #1 변수 명칭은 '기능을 함축적으로 요약한' 명칭을 사용합니다.
- // #2 변수 명칭에 대한 엄격한 제약은 없으나, 용도/역할을 가급적 알기 쉽게 이름을 부여하면, 직관적으로 이해할 수 있습니다.
- // #3 stdin 은 'standard input'의 약자입니다.
- // #4 사용자로부터 데이터를 입력 받을 때는 적절한 안내 문구를 출력하는 것이 좋습니다. (UI 관점)
- System.out.print("Input number (N <= 10) : ");
- Scanner stdin = new Scanner(System.in);
- int userInputNum = stdin.nextInt();
- // [INFO]
- // #1 입력 값이 요구조건을 만족하는지 여부를 검증(validation)해야 합니다.
- // #2 nextInt() 메소드는 음수(negative) 값을 입력 받을 수도 있습니다.
- // 즉, API의 동작 방식(입출력 값의 범위, 오류 처리 등)을 정확히 숙지해야 합니다.
- if(userInputNum >= MIN_INPUT_NUMBER && userInputNum <= MAX_INPUT_NUMBER) {
- // [INFO]
- // loop 를 수행하기 위한 방법은 for, while, do ~ while 등이 있지만,
- // 가급적 각각의 용도를 구분해 사용하는 것이 좋습니다.
- // for : 시작과 종료 값의 범위가 명확할 때 사용하는 것을 권장합니다.
- // while : 한번도 수행하지 않을 가능성이 있고, 종료 조건을 루프 시작 지점에서 판단할 때 권장합니다.
- // do ~ while : 한번이라도 수행해야만 하고, 종료 조건을 루프 종료 지점에서 판단할 때 권장합니다.
- for(int idx=0; idx<userInputNum; idx++ ) {
- System.out.println("Hello Algospot!");
- }
- }
- // [INFO]
- // 정상적으로 수행할 수 없을 경우에는 명확한 오류 처리를 수행해야,
- // 사용자/개발자 모두 프로그램의 정상 동작 여부를 판단할 수 있습니다.
- else {
- System.out.println("Not allowed input number : " + userInputNum);
- }
- // [INFO]
- // 프로그램 수행 중에서 사용한 자원은 꼭 해제(close)하는 습관을 들여야 합니다.
- // (JVM 등의 하위 시스템이 자동으로 처리할 지라도, 명시적으로 해주는 것이 혼란을 방지할 수 있어 좋습니다.)
- stdin.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement