사용하려고합니까? 어떤 메소드를 호출할지 결정하지만 변수를 지정할 필요가 없습니다. 내 질문 : 변수를 할당하지 않고 삼항 연산자를 사용하는 방법이 있습니까? 대신JAVA가 삼항 연산자를 사용하여 메서드 호출
if(x == 1) {
doThisMethod()
} else {
doThatMethod()
}
사용하려고합니까? 어떤 메소드를 호출할지 결정하지만 변수를 지정할 필요가 없습니다. 내 질문 : 변수를 할당하지 않고 삼항 연산자를 사용하는 방법이 있습니까? 대신JAVA가 삼항 연산자를 사용하여 메서드 호출
if(x == 1) {
doThisMethod()
} else {
doThatMethod()
}
는 삼원 연산자의 용도가 아니기 때문에이 작동하지 않을의
(something i dont need) = (x == 1)? doThisMethod():doThatMethod()
.
당신이 정말로 그것을 1 개 라인 싶은 경우
, 당신은 쓸 수 있습니다 :if (x==1) doThisMethod(); else doThatMethod();
이것은 효과가있었습니다. 지식에 감사드립니다. 다른 사람들이 쉽게 따라갈 수 있도록하고 싶습니다. –
-1 : 완전히 잘못되었습니다. 이것은 메서드의 반환 유형과는 아무런 관련이 없습니다. 'int' 나'Object'를 반환하는 메소드를 변경해도 구문 오류는 해결되지 않습니다. – ruakh
@ruakh, 내가 물었던 질문은 기본적으로 변수를 할당 할 필요가 없도록 기본적으로 3 진수 연산자를 void로 만들 수 있습니다. 나는 이것이 가장 좋은 대답이라는 질문에 답합니다. (왜냐하면, 실제로, "else"삼항 연산자가 필요하지 않기 때문에. 아무도 나에게 -1을 얻는다면. –
나는이 작동하는지 의심한다.
ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression ? Expression : ConditionalExpression
을 그리고 ConditionalExpression
은 그 자체로 Statement
되지 않습니다 : 다음과 같이 JLS §15.25는 삼항 표현을 정의합니다. 다양한 다른 장소에서 사용할 수 있습니다 (예 : Assignment
:
AssignmentExpression:
ConditionalExpression
Assignment
Assignment:
LeftHandSide AssignmentOperator AssignmentExpression
이 §14.8 "Expression Statements" of the Java Language Specification에 따르면, 문으로 만 사용할 수있는 유일한 표현은 다음과 같습니다
흐름이 메서드 호출 후에 중단되는 경우 이보다 훨씬 다양 화 될 수 있습니다.이 메서드는 사용할 수 있지만 흐름이 중단되지 않으면주의를 기울여야합니다. 그러면 두 메서드가 모두 실행됩니다.
이것은 x가 무엇이든 관계없이 항상 doThatMethod();를 호출합니다. – hinneLinks
@hinneLinks가 조금 더 장황하게 만들었습니다. 혼란 스럽습니다. –
'return doThisMethod();를 말한다면, 그것을 써야합니다. 만약 당신이 doThisMethod()를 호출하여'doThatMethod();를 호출하지 못하도록 예외를 던지면, 이것은 매우 나쁜 코드 스타일이 될 것이고, 아무도 그렇게 기대하지 않을 것입니다. – hinneLinks
'void' 메소드와 할당 대상을 사용하지 않으려 고 시도 했습니까? (필자는 전혀 없지만 작동하지 않는다는 것은 확실하지 않습니다.) –
죄송합니다. 내 대답이 잘못되었습니다. Java에서 단일 연산자로 삼항 연산자를 사용할 수 없습니다. 당신은 C.에서 가능합니다. – pb2q