나는 코드삼항 연산자를 사용하여이 코드를 어떻게 단축 할 수 있습니까?
public class direction do(direction)
if(istrue) {
left = do(left);
} else {
right = do(right);
}
}
이 단축 어쨌든이 있다면 궁금 해서요의 다음과 같은 부분이있다. 삼항 연산자를 사용해 보았지만 약간의 어려움이있었습니다. 제안?
나는 코드삼항 연산자를 사용하여이 코드를 어떻게 단축 할 수 있습니까?
public class direction do(direction)
if(istrue) {
left = do(left);
} else {
right = do(right);
}
}
이 단축 어쨌든이 있다면 궁금 해서요의 다음과 같은 부분이있다. 삼항 연산자를 사용해 보았지만 약간의 어려움이있었습니다. 제안?
팀의 다른 프로그래머가 마음에 들지 않으면 삼항 식을 사용할 수 있습니다. 귀하의 예제가 유효 자바에 있었다 그래서 경우 :
public void Do(Direction direction)
{
if (istrue)
left = Do(left);
else
right = Do(right);
}
을 또는 심지어 하나의 라이너 수 : :
public void Do(Direction direction)
{
(istrue)? left = Do(left) : right = Do(right);
}
당신은 if
에 괄호를 생략 할 수있는 모든 위
public void Do(Direction d) { (istrue)? left = Do(left) : right = Do(right); }
을 명확하고 너무 똑똑하지 않은 스타일을 선택하십시오. 코드를 읽고 이해하기 쉽게하려면 줄을 더 많이 사용하십시오.
당신의 예에서public String getFirstName() { return first_name; }
public String getLastName() { return last_name; }
public String getAddress1() { return address1; }
public String getAddress2() { return address2; }
public String getCity() { return city; }
public String getState() { return state; }
public String getZip() { return zip; }
이있다 : 어떤 경우에 그들은 (나에게) 이해하지만
한 - 라이너는 일반적으로 매우 유사 작은 방법 중 가족이 특히 매우 읽을 수 없습니다 삼항 연산자에 대한 합리적인 사용.
자바 (다른 C 언어와 같은)의 삼원 연산자의 값은 if 문이 문 동안 삼원 조작 식, 식 점이다. 표현식은 값을 산출하지만 명령문은 값을 산출하지 않습니다. 삼항 연산자 표현의 결과 값을 사용하지 않는 경우 삼항 연산자를 사용하는 업체는 없습니다. 그냥하지 마. 관심을
, 여기에 삼항 연산자의 올바른 사용의 예 :
int max(int x, int y) {
return x > y? x : y;
}
귀하의 코드가이 상태에 따라 두 가지 변수 (left
또는 right
)에 할당해야합니다. 3 진 표현은 과제의 왼쪽에서 사용할 수 없으므로 그렇게하는 데 도움이되지 않습니다.
그러면 (2 개의) 할당의 RHS가 해제됩니다. 이론적으로 삼항 식을 사용할 수는 있지만 코드를 길게 만들 것입니다.
짧은 대답은 3 진 연산자가 도움이되지 않는다는 것입니다.
이미 충분히 짧지 않습니까? 또한 이것은 유효한 Java 코드와 같지 않습니다. – MAK
메소드 행에 대괄호가 없습니다. 이것이 do while loop일까요? – Jim
함수 이름으로'do'를 사용할 수 있습니까? 그리고'direction','left','right'는 어디에 정의되어 있습니까? 전체 예제를 "단순화"하는 대신 게시하는 것이 좋습니다. – mellamokb