[ java ] Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명) > java

본문 바로가기
사이트 내 전체검색

java

[ java ] Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명)

페이지 정보

작성자 웹지기 댓글 0건 조회 131회 작성일 22-05-26 10:34

본문

Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명)

- 가독성 - 다른 개발자도 소스코드를 처음 보더라도 더 빠르고 완변하게 이해할 수 있게 코드규칙을 지키자.

- 다른 소스코드와 잘 어울리는 패키지

 

1. 이름(Naming)

 1-1. 식별자에는 영문(A, B..., a, b ...) / 숫자(1,2,3...) / 언더스코어( _ )만 허용

   - 변수명, 클래스명, 메소드명 등에는 영어와 숫자만 사용

   - 상수에는 단어 사이의 구분을 위해 언더스코어( _ )를 사용


 1.2. 한국어 발음 그대로의 영문 표기를 피하자

   - 되도록이면 고유 명사를 찾아서 사용하자

   - 좋은예) totalPrice( 총 금액 )

   - 나쁜예) chongGumek( 총 금액 ) 

 

 1-3. 대문자로 표기할 약어 명시

   - 클래스명, 변수명에 쓰일 단어 중 모든 글자를 대문자로 표기할 약어의 목록을 프로젝트별로 명시적으로 정의한다.

   - 약어의 대소문자 표기는 JDK의 클래스나 라이브러리들 사이에서도 일관된 규칙이 없다. 그러나 단일 프로젝트에서 규칙이 명확하지 않으면 같은 단어의 조합을 다른 이름으로 표기할 수 있어서 혼동하기가 쉽다.

   - 그래서 기본 정책으로는 약어의 중간단어를 소문자로 표기하고 프로젝트별로 모두 대문자로 표기할 약어의 목록을 명시하는 방식이 가독성을 높이고 규칙을 단순화하는게 좋다.

   - 좋은 예) HTTP + API + URL의 클래스 이름의 경우

                 대문자로 표기할 약어의 목록을 정의하지 않는 경우: HttpApiUrl

                 API만 대문자로 표기할 약어의 목록에 있을 경우: HttpAPIUrl

                 HTTP, API, URL이 대문자로 표기할 약어의 목록에 있을 경우: HTTPAPIURL

 

 1-4. 패키지 이름은 소문자로 구성

   - 패키지 이름은 소문자를 사용하여 작성한다.

   - 단어별 구문을 위해 언더스코어(_)나 대문자를 섞지 않는다. 

    - 좋은 예) package com.java.examoncetime

    - 나쁜 예) package com.java.examOncetime

                  package com.java.exam_once_time

 

 1-5. 클래스/인터페이스 이름에 파스칼표기법적용

   - 클래스 이름은 단어의 첫 글자를 대문자로 시작하는 파스칼표기법(Pascal case)을 사용한다.

   - 좋은 예) public class ExamOnceTime

                 public class AccessToken

   - 나쁜 예) public class examoncetime

                 public class Accesstoken

 

 1-6. 래스 이름에 명사/명사절 사용


 1-7. 인터페이스 이름에 명사/명사절 또는 형용사/형용사 사용

   - 좋은 예) public interface RowMapper {

                public interface AutoClosable {

 

 1-8. 테스트 클래스는 'Test'로 끝내자

   - JUnit 등으로 작성한 테스트 코드를 담은 클래스는 'Test'을 마지막에 붙인다.

   - 좋은 예) public class WatcherTest {

 

 1-9. 메소드 이름에 카멜표기법 적용

   - 메소드의 이름에는 첫 번째 단어를 소문자로 작성하고, 이어지는 단어의 첫 글자를 대문자로 작성하는 소문자 카멜표기법(Lower camel case)를 사용

   - 테스트 클래스의 메소드 이름에서는 언더스코어( _ )를 허용


 1-10. 메소드 이름은 동사/전치사로 시작

   - 메소드명은 기본적으로는 동사로 시작한다. 다른 타입으로 전환하는 메소드나 빌더 패턴을 구현한 클래스의 메소드에는 전치사를 쓸 수 있다.

   - 좋은 예) 동사 사용: renderHtml()

                전환메소드의 전치사: toString()

                Builder 패턴 적용한 클래스의 메소드의 전치사: withUserId(String id)

                = 반환값이 고정되어있는 메소드명

                 1) is~ : boolean 타입 리턴

                 2) has~ : boolean 타입 리턴

                 3) contain~ : boolean 타입 리턴

                 4) validate~ : 리턴값 없음

 

 1-11. 상수는 대문자와 언더스코어로 구성

   - 상태를 가지지 않는 자료형이면서 static final로 선언되어 있는 필드일 때를 상수로 간주한다.

   - 상수 이름은 대문자로 작성하며, 복합어는 언더스코어( _ )를 사용하여 구분한다.

   - 좋은 예) public final int UNLIMITED = -1;

                 public final String POSTAL_CODE_EXPRESSION = "POST";

 

 1-12. 변수에 소문자 카멜표기법 적용

   - 상수가 아닌 클래스의 멤버변수/지역변수/메소드 파라미터에는 소문자 카멜표기법(Lower camel case)을 사용한다.

   - 좋은 예) private boolean authorized;

                 private int accessToken;

   - 나쁜 예) private boolean Authorized;

                 private int AccessToken;

 

 1-13. 임시 변수 외에는 1 글자 이름 사용 금지

   - 메소드 블럭 범위 이상의 생명 주기를 가지는 변수에는 1글자로 된 이름을 쓰지 않는다.

   - 반복문의 인덱스나 람다 표현식의 파라미터 등 짧은 범위의 임시 변수에는 관례적으로 1글자 변수명을 사용할 수 있다.

   - 좋은 예) HtmlParser parser = new HtmlParser();

   - 나쁜 예) HtmlParser p = new HtmlParser();

 

2. 선언(Declarations)

 2-1. 소스파일당 1개의 탑레벨 클래스 담기

   - 탑레벨 클래스는 소스파일에 1개만 존재해야 한다.

   - 굳이 한 파일 안에 선언해야 한다면 내부 클래스로 선언한다.


 2-2. static import에만 와일드 카드 허용

   - 클래스를 import할 때는 와일드카드(*)없이 모든 클래스명을 다 쓴다.

   - static import에서는 와일드카드를 허용한다.


 2-3. 제한자 선언의 순서

   - 클래스/메소드/멤버변수의 제한자는 Java Language Specification에서 명시한 아래의 순서로 쓴다.

   - public protected private abstract static final transient volatile synchronized native strictfp


 2-4. 애너테이션 선언 후 새줄 사용

   - 클래스, 인터페이스, 메소드, 생성자에 붙는 애너테이션은 선언 후 새줄을 사용한다. 이 위치에서도 파라미터가 없는 애너테이션 1개는 같은 줄에 선언할 수 있다.

   - 좋은 예) @RequestMapping("/guests")

                 public void findGuests() {}

   - 좋은 예) @Override public void destroy() {}

 

 2-5. 한 줄에 한 문장

   - 문장이 끝나는 ; 뒤에는 새 줄을 삽입한다.


 2-6. 하나의 선언문에는 하나의 변수만

   - 변수 선언문은 한 문장에서 하나의 변수만을 다룬다.


 2-7. 배열에서 대괄호는 타입 뒤에 선언

   - 배열 선언에 오는 대괄호([])는 타입의 바로 뒤에 붙인다. 변수명 뒤에 붙이지 않는다.


 2-8. 'long'형 값의 마지막에 'L' 붙이기

   - long형의 숫자에는 마지막에 대문자'L'을 붙인다.


 2-9. 특수 문자의 전용 선언 방식을 활용

   - \b, \f, \n, \r, \t, \, \\와 같이 특별히 정의된 선언 방식이 있는 특수 문자가 있다. 이런 문자들은 숫자를 이용한 \008이나 \u008와 같은 숫자를 넣은 선언보다 전용 방식을 활용한다.

   - 좋은 예) System.out.println("---\n---");

   - 나쁜 예) System.out.println("---\012---");

 

3. 들여쓰기(Indentation)

 3-1. 하드탭 사용

   - 탭(tab) 문자를 사용하여 들여쓴다. (탭 대신 스페이스를 사용금지)


 3-2. 탭의 크기는 4개의 스페이스

   - 1개의 탭의 크기는 스페이스 4개와 같도록 에디터에서 설정한다.


 3-3. 블록 들여쓰기

   - 클래스, 메소드, 제어문 등의 코드 블록이 생길 때마다 1단계를 더 들여쓴다.

   - 이클립스 단축키( Ctl + Shift + F )


4. 중괄호(Braces)

 4-1. K&R 스타일로 중괄호 선언

   - 클래스 선언, 메소드 선언, 조건/반복문 등의 코드 블록을 감싸는 중괄호에 적용되는 규칙이다. 

     (  중괄호 선언은 K&R 스타일(Kernighan and Ritchie style)을 따른다. )

   - 줄의 마지막에서 시작 중괄호 '{'를 쓰고 열고 새 줄을 삽입한다. 블록을 마친 후에는 새 줄 삽입 후 중괄호를 닫는다.


 4-2. 닫는 중괄호와 같은 줄에 else, catch, finally, while 선언

   - 아래의 키워드는 닫는 중괄호 (})와 같은 줄에 쓴다.

     1) else

     2) catch, finally

     3) do-while 문에서의 while

 

 4-3. 빈 블록에 새 줄 없이 중괄호 닫기 허용

   - 내용이 없는 블록을 선언할 때에는 같은 줄에서 중괄호 닫는 것을 허용한다.


 4-4. 조건/반복문에는 중괄호 필수 사용

   - 조건, 반복문이 한 줄로 끝나더라도 중괄호를 활용한다.


5. 줄바꿈(Line-wrapping)

 5-1. 최대 줄 너비는 120

   - 최대 줄 사용 너비는 120자까지 가능하다.


 5-2. package, import 선언문은 한 줄로

   - package, ìmport 선언문 중간에서는 줄을 바꾸지 않는다. 최대 줄 수를 초과하더라도 한 줄로 쓴다.


 5-3. 줄바꿈 후 추가 들여쓰기

   - 줄바꿈 이후 이어지는 줄에서는 최초 시작한 줄에서보다 적어도 1단계의 들여쓰기를 더 추가한다.

   - 좋은 예) AbstractAggregateRootTest.AggregateRoot proxyAggregateRoot =

                    em.getReference(AbstractAggregateRootTest.AggregateRoot.class, aggregateRoot.getId());

 

 5-4. 줄바꿈 허용 위치

   - 가독성을 위해 줄을 바꾸는 위치는 다음 중 하나로 한다.

     1) extend 선언 후

     2) implements 선언 후

     3) throws 선언 후

     4) 시작 소괄호(()) 선언 후

     5) 콤마(,) 후

     6) 마침표(.) 전

     7) 연산자 전

  • +, -, *, /, %
  • ==, !=, >=, >, <=, <, &&, ||
  • &, |, ^, >>>, >>, <<, ?
  • instanceof

6. 빈줄(Blank lines)

 6-1. package 선언 후 빈 줄 삽입

   - package를 선언한 후 빈 줄을 삽입한다.


 6-2. import 선언의 순서와 빈 줄 삽입

   - import 구절은 아래와 같은 순서로 그룹을 묶어서 선언한다.

    1) static imports

    2) java.

    3) javax.

    4) org.

    5) net.

    6) 8~10을 제외한 com.*

    7) 1~6, 8~10을 제외한 패키지에 있는 클래스

    8) com.nhncorp.

    9) com.navrcorp.

    10) com.naver.

   - 각 그룹 사이에는 빈 줄을 삽입한다.

   - 각 그룹 내에서는 알파벳 순으로 정렬한다.

   - 좋은 예) import java.util.Date;

                 import java.util.List;

 

                 import javax.naming.NamingException;


                 import org.apache.commons.logging.Log;

                 import org.apache.commons.logging.LogFactory;

                 import org.springframework.util.Assert;


                 import com.google.common.base.Function;


 6-3. 메소드 사이에 빈 줄 삽입

   - 메소드의 선언이 끝난 후 메소드 선언이 시작되기 전에 빈 줄을 삽입한다.


7. 공백(Whitespace)

 7-1. 공백으로 줄을 끝내지 않음

   - 빈 줄을 포함하여 모든 줄은 탭이나 공백으로 끝내지 않는다.


 7-2. 대괄호 뒤에 공백 삽입

   - 닫는 대괄호(]) 뒤에 ';'으로 문장이 끝나지 않고 다른 선언이 올 경우 공백을 삽입한다.


 7-3. 중괄호의 시작 전, 종료 후에 공백 삽입

   - 여는 중괄호({) 앞에는 공백을 삽입한다.

   - 닫는 중괄호(}) 뒤에 else, catch 등의 키워드가 있을 경우 중괄호와 키워드 사이에 공백을 삽입한다.


 7-4. 제어문 키워드와 여는 소괄호 사이에 공백 삽입

   - if, for, while, catch, synchronized, switch와 같은 제어문 키워드의 뒤에 소괄호(())를 선언하는 경우, 시작 소괄호 앞에 공백을 삽입한다.


 7-5. 식별자와 여는 소괄호 사이에 공백 미삽입

   - 식별자와 여는 소괄호(() 사이에는 공백을 삽입하지 않는다. 생성자와 메소드의 선언, 호출, 애너테이션 선언 뒤에 쓰이는 소괄호가 그에 해당한다.

   - 좋은 예) public StringProcessor() {}// 생성자

                 @Cached("local")

                 public String removeEndingDot(String original) {

                     assertNotNull(original);

                      ...

                 }

   - 나쁜 예) public StringProcessor () {}// 생성자

                @Cached ("local")

                public String removeEndingDot (String original) {

                    assertNotNull (original);      

                    ...

                }

 

 7-6. 타입 캐스팅에 쓰이는 소괄호 내부 공백 미삽입

   - 타입캐스팅을 위해 선언한 소괄호의 내부에는 공백을 삽입하지 않는다.


 7-7. 제네릭스 산괄호의 공백 규칙

   - 제네릭스(Generics) 선언에 쓰이는 산괄호(<>) 주위의 공백은 다음과 같이 처리한다.

    1) 제네릭스 메소드 선언일 때만 < 앞에 공백을 삽입한다.

    2) < 뒤에 공백을 삽입하지 않는다.

    3) > 앞에 공백을 삽입하지 않는다.

    4) 아래의 경우를 제외하고는 > 뒤에 공백을 삽입한다.

    5) 메소드 레퍼런스가 바로 이어질 때

    6) 여는 소괄호(()가 바로 이어질 때

    7) 메소드 이름이 바로 이어질 때

   - 좋은 예) 

    public static <A extends Annotation> A find(AnnotatedElement elem, Class<A> type) { // 제네릭스 메서드 선언

        List<Integer> l1 = new ArrayList<>(); // '(' 가 바로 이어질때

        List<String> l2 = ImmutableList.Builder<String>::new; // 메서드 레퍼런스가 바로 이어질 때

        int diff = Util.<Integer, String>compare(l1, l2); // 메서드 이름이 바로 이어질 때

    }

 

 7-8. 콤마/구분자 세미콜론의 뒤에만 공백 삽입

   - 콤마(,), 반복문(while, for)의 구분자로 쓰이는 세미콜론(;) 뒤에만 공백을 삽입한다.


7-9. 콜론의 앞 뒤에 공백 삽입

   - 반복문과 삼항연산자에서는 콜론(:)의 앞 뒤에는 공백을 삽입한다. 라벨 선언 뒤에는 아무런 문자열이 없으므로 앞에만 공백을 삽입한다.

   - 좋은 예)

     for (Customer customer : visitedCustomers) {

         AccessPattern pattern = isAbnormal(accessLog) ? AccessPattern.ABUSE : AccessPattern.NORMAL;

         int grade = evaluate(customer, pattern);

         switch (grade) {

            case GOLD : sendSms(customer);

            case SILVER : sendEmail(customer);

            default : inreasePoint(customer)

         }

    }

 

 7-10. 이항/삼항 연산자의 앞 뒤에 공백 삽입

   - 이항/삼항 연산자의 앞 뒤에는 공백을 삽입한다.

   - 좋은 예) if (pattern == Access.ABNORMAL) {

                     return 0;

                 }

                 finalScore += weight * rawScore - absentCount;

                 if (finalScore > MAX_LIMIT) {

                     return MAX_LIMIT;

                 }

 

 7-11. 단항 연산자와 연산 대상 사이에 공백을 미삽입

   - 단항 연산자와 연산 대상의 사이에는 공백을 삽입하지 않는다.

    1) 전위 연산자 : 연산자 뒤에 공백을 삽입하지 않는다.

  • 전위 증가/감소 연산자 : ++, --
  • 부호로 쓰이는 +, -
  • NOT 연산자 : ~, !

     2) 후위 연산자 : 연산자 앞에 공백을 삽입하지 않는다.

  • 후위 증가/감가 연산자 : ++, --

 7-12. 주석문 기호 전후의 공백 삽입

   - 주석의 전후에는 아래와 같이 공백을 삽입한다.

  • 명령문과 같은 줄에 주석을 붙일 때 // 앞
  • 주석 시작 기호 // 뒤
  • 주석 시작 기호 /* 뒤
  • 블록 주석을 한 줄로 작성시 종료 기호 */ 앞
추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 113건 1 페이지
  • 열람중 [ java ] Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, …
  • Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명) - 가독성 - 다른 개발자도 소스코드를 처음 보더라도 더 빠르고 완변하게 이해할 수 있게 코드규칙을 지키자. - 다른 소스코드와 잘 어울리는 패키지 1. 이름(Naming) 1-1. 식별자에는 영문(A, B..., a, b ...) / 숫자(1,2,3...) / 언더스코어( _ )만 허용 - 변수명, 클래스명, 메소드명 등에는 영어와 숫자만 사용 - 상수에는 단어 사이의 구분을 위...
  • 웹지기 05-26 132 0 0 댓글 0
  • 112 [ java ] 주석 처리
  • 한줄 주석 // 여러줄 한번에 주석 /* 주석내용 */
  • 웹지기 01-15 2381 0 0 댓글 0
  • 111 [ java ] JavaFestival13 - Question6 - 합병 - 두개배열 병합정렬
  • JavaFestival13 - Question6 - 두개의 배열 A와B를 합병 후 오름차순으로 정렬하여 반환하는 mergeArray메소드를 완성하시오. import java.util.Arrays; public class Question6 { public static void main(String[] args) { int[] A = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 }; int[] B = { 2, ...
  • 웹지기 01-07 2769 0 0 댓글 0
  • 110 [ java ] JavaFestival13 - Question5 - 하샤드 수
  • JavaFestival13 - Question5 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수 입니다. isHarshad메소드는 양의 정수 n을 매개변수로 입력받습니다. 이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요. 예를들어 n이 10, 12, 18이면 True를 리턴 11, 13이면 False를 리턴하면 됩니다. publi...
  • 웹지기 01-07 2334 0 0 댓글 0
  • 109 [ java ] JavaFestival13 - Question4 - 1보다 큰 정수(N)를 입력하여 N!값을…
  • JavaFestival13 - Question4 - 1보다 큰 정수(N)를 입력하여 N!값을 구하시오. * 팩토리얼이란 N의 수보다 작거나 같은 모든 양의 정수의 곱 ex) 3! = 1 x 2 x 3 =&gt; 6 import java.util.Scanner; public class Question4 { public static void main(String[] args) { Scanner sc = new Scanner(Syst...
  • 웹지기 01-07 2483 0 0 댓글 0
  • 108 [ java ] JavaFestival13 - Question3 - 그림과 같이 대시(‘_’)문자로 구성된 …
  • JavaFestival13 - Question3 -그림과 같이 대시(‘_’)문자로 구성된 형태의 숫자를 주어진 숫자와 같이 출력하고 싶을때 사용되게 되는 대시의 개수를 출력하는 프로그램을 작성하라 import java.util.Scanner; public class Question3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); S...
  • 웹지기 01-07 2653 0 0 댓글 0
  • 107 [ java ] JavaFestival13 - Question2 - 가운데 글자 구하기
  • 가운데 글자 구하기 getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다. 예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다. public class Question2 { public static void main(String[] args) { ...
  • 웹지기 01-07 2313 0 0 댓글 0
  • 106 [ java ] JavaFestival13 - Question1 - 다음과 같은 프로그램을 작성하시오. N…
  • JavaFestival13 - Question1 - 다음과 같은 프로그램을 작성하시오. N과 X를 입력 받는다. N개의 정수를 입력 받는다. N개의 숫자 중 X보다 작은 수만 출력 한다. import java.util.Scanner; public class Question1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ...
  • 웹지기 01-07 1524 0 0 댓글 0
  • 104 [ java ] JavaFestival12 - Question2 - 일한 시간을 입력받아 총 임금을 계산하는…
  • JavaFestival10 - Question1 - 일한 시간을 입력받아 총 임금을 계산하는 시급계산기입니다. 시급은 5000원이며 8시간보다 초과 근무한 시간에 대해 1.5배의 시급이 책정됩니다. import java.util.Scanner; public class Question2 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); ...
  • 웹지기 01-07 1180 0 0 댓글 0
  • 103 [ java ] JavaFestival12 - Question1 - 현재몸무게와 목표몸무게를 각각 입력 받고…
  • JavaFestival12 - Question1 - 현재몸무게와 목표몸무게를 각각 입력 받고 주차별 감량몸무게를 입력 받아 목표 달성 시 축하메세지를 띄우는 프로그램을 구현하시오. import java.util.Scanner; public class Question1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out...
  • 웹지기 01-07 1151 0 0 댓글 0
  • 102 [ java ] JavaFestival11 - Question3 - 1,2,4 세 개의 숫자만 쓰는 124나…
  • 1,2,4 세 개의 숫자만 쓰는 124나라가 있습니다. 124나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법의 1 → 1 10진법의 2 → 2 10진법의 3 → 4 10진법의 4 → 11 10진법의 5 → 12 10진법의 6 → 14 change124() 메소드에 십진수 숫자를 넣으면 124 나라 숫자로 바꾸는 프로그램을 작성하시오. public class Question3 { public static void main(String[] args...
  • 웹지기 01-07 612 0 0 댓글 0
  • 101 [ java ] JavaFestival11 - Question2 - 연속된 자연수의 합으로 어떤 숫자를 표현…
  • 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다. 예를 들어, 15를 표현하는 방법은 (1+2+3+4+5) (4+5+6) (7+8) (15) 로 총 4가지가 존재한다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 보시오. 예를 들어 15가 입력된다면 4를 반환해 주면 된다. question2.java public class Question2 { public static void ...
  • 웹지기 01-07 1017 0 0 댓글 0
  • 100 [ java ] JavaFestival11 - Question1 - 1937년 Collatz란 사람에 의해 …
  • JavaFestival11 - Question1 - 1937년 Collatz란 사람에 의해 제기된 이 추측은 입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우, 모든 수가 1이 됩니다. 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. collatzNumber() 메소드를 만들어 입력된 수가 몇 번 만에 1이 되는지 반환해 주세요. 단, 500번을 ...
  • 웹지기 01-07 617 0 0 댓글 0
  • 99 [ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼…
  • JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다. A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않는다. 보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 ceasar 함수를 완성해 보시오. “a B z”, 4를 입력받았다면 “e F d”를 리턴한다. public class Question1 { ...
  • 웹지기 01-07 641 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
4,409
어제
10,286
최대
24,117
전체
4,324,324

그누보드5
Copyright © funyphp.com. All rights reserved.