9 가지 팁 이 당신 의 자바 if else 를 더욱 우아 하 게 보이 게 합 니 다.

8704 단어 자바ifelse
머리말
if else 는 우리 가 코드 를 쓸 때 사용 빈도 가 가장 높 은 키워드 중 하나 이지 만,때때로 너무 많은 if else 는 우리 로 하여 금 머리 가 아 프 게 한다.예 를 들 어 아래 의 이 위조 코드:

너무 무 너 지지 않 아 요?비록 그 는 가짜 코드 이 고 과장 되 어 보이 지만 현실 에서 우리 가 다른 사람의 코드 를 몇 번 리 뷰 하지 않 을 때 비슷 한 장면 을 발견 할 수 있다.그러면 본 고 는 우리 가 이렇게 많은 if else 를 쓰 는 것 을 피 할 수 있 는 방법 이 없 을 까?
우리 본문 은'귀 찮 은'if else 를 해결 하 는 9 가지 방법 을 제공 하 였 으 니 함께 보 자.
1.return 사용
우 리 는 return 을 사용 하여 불필요 한 else 를 제거 하고 코드 를 다음 과 같이 실현 합 니 다.
이전 코드 최적화:

if (str.equals("java")) {
 //      ! true;
} else {
 return ;
}
최적화 후 코드:

if (str.equals("java")) {
 return ;
}
return false;
이렇게 하면 훨씬 편안 해 보일 것 이다.비록 한 줄 의 코드 만 차이 가 나 지만 진정한 고수 와 일반인 간 의 차 이 는 바로 이 줄 의 코드 에서 나타 난 것 이다.
'선 이 작 으 면 하지 말고 악 이 작 으 면 하지 마라','천리 의 제방,개미굴 에 무 너 져 라'는 말 은 모두 같은 이치 이다.
2.지도 사용
Map 배열 을 사용 하여 관련 판단 정 보 를 요소 정보 로 정의 하면 if else 판단 을 직접 피 할 수 있 고 코드 는 다음 과 같 습 니 다.
이전 코드 최적화:

if (t == 1) {
 type = "name";
} else if (t == 2) {
 type = "id";
} else if (t == 3) {
 type = "mobile";
}
우 리 는 먼저 맵 배열 을 정의 하여 관련 판단 정 보 를 저장 합 니 다.

Map<Integer, String> typeMap = new HashMap<>();
typeMap.put(1, "name");
typeMap.put(2, "id");
typeMap.put(3, "mobile");
이전의 판단 문 구 는 다음 줄 의 코드 로 대체 할 수 있다.

type = typeMap.get(ty);
3.삼원 연산 자 사용
3 원 연산 자 는 3 원 표현 식 또는 3 개의 연산 자/표현 식 이 라 고도 부 르 지만 대표 적 인 것 은 모두 하나의 뜻 이 고 최적화 코드 는 다음 과 같다.
이전 코드 최적화:

Integer score = 81;
if (score > 80) {
 score = 100;
} else {
 score = 60;
}
최적화 후 코드:

score = score > 80 ? 100 : 60;
4.병합 조건 식
프로젝트 에서 일부 논리 적 판단 은 정리 와 귀납 을 통 해 더욱 간단 하고 이해 하기 쉬 운 논리 적 판단 코드 로 변경 할 수 있다.다음 과 같다.
이전 코드 최적화:

String city = "  ";
String area = "029";
String province = "  ";
if ("  ".equals(city)) {
 return "xi'an";
}
if ("029".equals(area)) {
 return "xi'an";
}
if ("  ".equals(province)){
 return "xi'an";
}
최적화 후 코드:

if ("  ".equals(city) || "029".equals(area) || "  ".equals(province)){
 return "xi'an";
}
5.매 거 진 사용
JDK 1.5 에 새로운 유형 인 매 거 진(enum)을 도입 했다.우 리 는 이 를 사용 하면 다음 과 같은 여러 가지 기능 을 완성 할 수 있다.
이전 코드 최적화:

Integer typeId = 0;
String type = "Name";
if ("Name".equals(type)) {
 typeId = 1;
} else if ("Age".equals(type)) {
 typeId = 2;
} else if ("Address".equals(type)) {
 typeId = 3;
}
최적화 할 때,우 리 는 먼저 매 거 진 것 을 정의 합 니 다.

public enum TypeEnum {
 Name(1), Age(2), Address(3);
 public Integer typeId;
 TypeEnum(Integer typeId) {
 this.typeId = typeId;
 }
}
이전의 if else 판단 은 다음 줄 코드 로 대 체 될 수 있 습 니 다.

typeId = TypeEnum.valueOf("Name").typeId;
6.옵션 사용
JDK 1.8 부터 Optional 클래스 를 도입 하여 JDK 9 시 Optional 클래스 를 개선 하고 ifPresent OrElse()방법 을 추 가 했 습 니 다.이 를 통 해 if else 의 판단 을 없 애고 다음 과 같이 사용 할 수 있 습 니 다.
이전 코드 최적화:

String str = "java";
if (str == null) {
 System.out.println("Null");
} else {
 System.out.println(str);
}
최적화 후 코드:

Optional<String> opt = Optional.of("java");
opt.ifPresentOrElse(v -> 
 System.out.println(v), () -> System.out.println("Null"));
팁:버 전 실행 에 주의 하 세 요.JDK 9+여야 합 니 다.
7.정리 최적화 판단 논리
네 번 째 점 과 비슷 하 다.우 리 는 if else 의 논리 적 판단 의 미 를 분석 함으로써 더욱 알 기 쉬 운 코드 를 쓸 수 있다.예 를 들 어 다음 과 같은 포 함 된 판단 의 최적화 이다.
이전 코드 최적화:

//      18
if (age > 18) {
 //      5000
 if (salary > 5000) {
 //     
 if (pretty == true) {
 return true;
 }
 }
}
return false;
최적화 후 코드:

if (age < 18) {
 return false;
}
if (salary < 5000) {
 return false;
}
return pretty == true; 
우 리 는 표현 식 에 포 함 된 관 계 를 평행 관계 로 바 꾸 어야 한다.그러면 코드 의 가 독성 이 더욱 높 고 논리 가 더욱 뚜렷 하 다.
8.다 중 사용
계승,포장 과 다 태 는 OOP(대상 을 대상 으로 프로 그래 밍)의 중요 한 사상 이다.본 고 는 다 태 적 인 사상 을 사용 하여 if else 를 제거 하 는 방법 을 제공한다.
이전 코드 최적화:

Integer typeId = 0;
String type = "Name";
if ("Name".equals(type)) {
 typeId = 1;
} else if ("Age".equals(type)) {
 typeId = 2;
} else if ("Address".equals(type)) {
 typeId = 3;
}
다 중 모드 를 사용 하면 우 리 는 먼저 하나의 인 터 페 이 스 를 정의 하고 인터페이스 에서 typeId 로 돌아 가 는 방법 을 설명 합 니 다.세 개의 하위 클래스 를 추가 하여 각각 이 세 개의 하위 클래스 를 실현 하고 코드 는 다음 과 같 습 니 다.

public interface IType {
 public Integer getType();
}

public class Name implements IType {
 @Override
 public Integer getType() {
 return 1;
 }
}

public class Age implements IType {
 @Override
 public Integer getType() {
 return 2;
 }
}

public class Address implements IType {
 @Override
 public Integer getType() {
 return 3;
 }
}

메모:간단 하기 위해 서 는 클래스 와 인 터 페 이 스 를 하나의 코드 블록 에 넣 었 습 니 다.실제 개발 에 서 는 각각 하나의 인터페이스 와 세 가지 유형 을 만들어 각각 저장 해 야 합 니 다.
이때,우리 이전의 if else 판단 은 다음 과 같은 코드 로 바 꿀 수 있 습 니 다.

IType itype = (IType) Class.forName("com.example." + type).newInstance();
Integer typeId = itype.getType();
오히려 코드 를 복잡 하 게 만 들 었 다 는 말 도 있 을 수 있다.이 는'닭 을 잡 는데 소 잡 는 칼 을 쓰 겠 느 냐'는 전형 적 인 사례 라 고 할 수 있다.여기 서 작 가 는 실현 방향 과 간단 한 버 전의 코드 를 제공 하여 개발 자 들 이 실제 개발 에서 여러 가지 사고 와 선택 을 할 수 있 도록 제공 할 뿐 구체 적 으로 실제 상황 에 따라 결정 할 필요 가 없다.융통성 이 있 고 하 나 를 보면 열 을 안다.
9.선택 적 사용 switch
많은 사람들 이 switch 와 if else 의 사용 장면 을 이해 하지 못 하지만 둘 다 사용 할 수 있 는 상황 에서 switch 를 사용 할 수 있 습 니 다.switch 는 상수 분기 에서 선택 할 때 switch 성능 이 if else 보다 높 기 때 문 입 니 다.
if else 판단 코드:

if (cmd.equals("add")) {
 result = n1 + n2;
} else if (cmd.equals("subtract")) {
 result = n1 - n2;
} else if (cmd.equals("multiply")) {
 result = n1 * n2;
} else if (cmd.equals("divide")) {
 result = n1 / n2;
} else if (cmd.equals("modulo")) {
 result = n1 % n2;
}
switch 코드:

switch (cmd) {
 case "add":
 result = n1 + n2;
 break;
 case "subtract":
 result = n1 - n2;
 break;
 case "multiply":
 result = n1 * n2;
 break;
 case "divide":
 result = n1 / n2;
 break;
 case "modulo":
 result = n1 % n2;
 break;
}
자바 14 에서 switch 코드 블록 을 사용 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.

// java 14
switch (cmd) {
 case "add" -> {
 result = n1 + n2;
 }
 case "subtract" -> {
 result = n1 - n2;
 }
 case "multiply" -> {
 result = n1 * n2;
 }
 case "divide" -> {
 result = n1 / n2;
 }
 case "modulo" -> {
 result = n1 % n2;
 }
}
총결산
부지런 하고 노 는 것 에 정통 하 며,생각 이 이 루어 지면 뜻 대로 되 지 않 는 다.프로 그래 밍 은 일종 의 솜씨 이자 즐거움 이다.하 버드 에서 가장 인기 있 는 행복 수업 인 는'우리 가 즐거움 과 행복 을 느 낄 수 있 는 방법 은 자신 이 조금 만 노력 하면 완성 할 수 있 는 일 에 전념 하 는 것 이 아니다!'라 고 썼 다.그래,너무 간단 한 일 은 우리 의 흥 미 를 불 러 일 으 키 지 못 하고,너무 어 려 운 일 은 우리 로 하여 금 자신 감 을 잃 게 한다.어 려 울 것 같 지만 조금 만 노력 하면 완성 할 수 있 는 일 들 만 이 우리 에 게 큰 즐거움 을 줄 수 있다.
프로 그래 밍 도 마찬가지 라 고 생각 합 니 다.일반적인 방법 은 모든 사람 이 쓸 수 있 지만 우아 한 코드 는 모든 사람 이 쓸 수 있 는 것 이 아 닙 니 다.본 고 는 바로 우아 한 코드 를 쓰 는 방향 을 제공 하여 당신 에 게 도움 을 주 고 깨 우 쳐 주 기 를 바 랍 니 다.
9 가지 팁 으로 당신 의 자바 if else 를 더욱 우아 하 게 만 드 는 이 글 을 소개 합 니 다.더 많은 자바 if else 팁 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
참고&감사
https://www.jb51.net/article/200144.htm
https://www.jb51.net/article/200145.htm

좋은 웹페이지 즐겨찾기