728x90
반응형
조기 반환
- 코드 실행 과정이 함수 끝까지 도달하기 전에 반환하는 기법
- 코드 가독성을 높임
- 예외를 조금 더 깔끔하게 처리
public static void main(String[] args) {
System.out.println(totalPrice(4, 50));
}
private static int totalPrice(int quantity, int price) {
int total = quantity * price;
if (total > 100) {
return (int)(total * 0.9);
}
return total;
}
보호 구문
- 본격적인 로직을 진행하기 전에 예외 처리 코드를 추가하는 기법
- 예시
- 조건문을 이용하여 입력값이 유효한지 검사
- 아니라면 함수 종료
- 구현부에서 입력값에 대한 예외를 고려하지 않음
- 처음부터 예외를 고려하여 코드를 안전하게 작성
- 즉, 예외를 잘 고려했다면 코드에서 원하는 동작 구현에만 집중하면 됨
static double calculateAverage(List<Integer> numbers) {
if (numbers == null) // null이면 종료(예외)
return 0;
if (numbers.isEmpty()) // 데이터가 없으면 종료(예외)
return 0;
int total = numbers.stream().mapToInt(i -> i).sum(); //예외 처리 후 기능 구현
return (double) total / numbers.size();
}
제네릭
- 빌드 레벨에서 타입을 체크하여 타입 안정성을 제공
- 타입 체크와 형 변환을 허락하여 코드를 간력랗게 함
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add("abc");
int sum1 = (int) list.get(0) + (int) list.get(1); // 런타임 오류 발생
List<Integer> genericList = new ArrayList<>();
genericList.add(10);
genericList.add("abc"); // 문법(빌드 레벨) 오류 발생
int sum2 = genericList.get(0) + genericList.get(1);
}
- List<Integer>
- 타입을 강제하는 것이 제네릭
- 제네릭은 타입에 맞지 않는 데이터를 추가하려고 할 때 문법 오류를 강제해서 개발자의 실수 방지
- 코딩 테스트에서는 여러 타입의 데이터를 하나의 컬렉션에 넣는 경우가 없음
- 제네릭으로 타입을 강제하여 실수를 방지
반응형
'코딩 테스트 > 자바 알고리즘' 카테고리의 다른 글
[코테 알고리즘] 컬렉션 프레임워크 (0) | 2024.04.01 |
---|