[java] Java if 문의 약식

Java if문을 짧은 형식으로 작성하는 방법이 있다는 것을 알고 있습니다 .

if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

누구든지 위의 5 줄에 대한 짧은 양식을 한 줄에 쓰는 방법을 알고 있습니까?



답변

삼항 연산자를 사용하십시오.

name = ((city.getName() == null) ? "N/A" : city.getName());

조건이 거꾸로 있다고 생각합니다. null이면 값이 “N / A”가되기를 원합니다.

도시가 null이면 어떻게 되나요? 이 경우 코드가 침대에 닿습니다. 다른 수표를 추가하고 싶습니다.

name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());


답변

.getName()두 번 전화를 피하려면

name = city.getName();
if (name == null) name = "N/A";


답변

이를 수행하는 방법은 삼항 연산자를 사용하는 것입니다.

name = city.getName() == null ? city.getName() : "N/A"

그러나 위 코드에서 오타가 있다고 생각합니다.

if (city.getName() != null) ...


답변

? : Java 연산자

Java에서는 다음과 같이 작성할 수 있습니다.

if (a > b) {
  max = a;
}
else {
  max = b;
}

단일 조건을 기반으로 단일 변수를 두 가지 상태 중 하나로 설정하는 것은 조건부 연산자? :에 대한 바로 가기가 고안된 if-else의 일반적인 사용입니다. 조건부 연산자를 사용하면 위의 예제를 다음과 같이 한 줄로 다시 작성할 수 있습니다.

max = (a > b) ? a : b;

(a> b)? a : b; a 또는 b의 두 값 중 하나를 리턴하는 표현식입니다. 조건 (a> b)이 테스트됩니다. 참이면 첫 번째 값 a가 반환됩니다. False이면 두 번째 값 b가 반환됩니다. 반환되는 값은 조건부 테스트 a> b에 따라 다릅니다. 조건은 부울 값을 리턴하는 표현식 일 수 있습니다.


답변

자바 8 :

name = Optional.ofNullable(city.getName()).orElse("N/A")


답변

나는 항상 ?: 삼항 연산자 를 사용하는 방법을 잊고 있습니다 . 이 보충 답변은 빠른 알림입니다. 의 약칭입니다 if-then-else.

myVariable = (testCondition) ? someValue : anotherValue;

어디

  • () 보유 if
  • ? 방법 then
  • : 방법 else

와 동일

if (testCondition) {
    myVariable = someValue;
} else {
    myVariable = anotherValue;
}


답변

if, else if, else짧은 형식으로 진술을 작성할 수 있습니다 . 예를 들면 다음과 같습니다.

Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";      

이것은 짧은 형식입니다.

Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
    isCapitalName = "";
} else if(isCapital) {
    isCapitalName = "Capital";
} else {
    isCapitalName = "City";
}