의 그런 뭔가 할 수 있다면 나 자신을 요구했다 :C의 삼항 : 할 두 가지 일
condition ? do this && THIS : else;
같은 :
nb = (nb1 + nb2) > 9 ? (nb1 + nb2) % 10 && nb1 + 1 : 0;
참고 이것은 단지 예를 들어, 그것은 아무 의미도 없다 .
의 그런 뭔가 할 수 있다면 나 자신을 요구했다 :C의 삼항 : 할 두 가지 일
condition ? do this && THIS : else;
같은 :
nb = (nb1 + nb2) > 9 ? (nb1 + nb2) % 10 && nb1 + 1 : 0;
참고 이것은 단지 예를 들어, 그것은 아무 의미도 없다 .
:
condition ? function_that_does_several_things() : else_expr;
당신이 목록에서 식을 수집 할 수있다 다른 것은 :
int a = (1,2);
은 2
에서 a
으로 지정됩니다. 그래서 당신은 이것을 시도 할 수 있습니다 :
condition ? (do_this, and_this) : else_expr;
그러나 나는 그것에 반대합니다. 여기에서 무슨 일이 일어나고 있는지보기가 정말로 어렵습니다. 많은 사람들이 그러한 코드를 보았을 때 혼란스럽고 놀람과 좌절을 느낍니다.
"해야할 일"이 아니라 "이것을 평가합니다". 조건과 "거짓"경로를 제거하고 당신이 얻을 : 그래서
nb = (nb1 + nb2) % 10 && nb1 + 1;
을, 그래, 당신은 그것을 할 수 있지만 nb
의 값은 본질적으로 논리 식의 결과 것입니다 ... 이 : 간단한 방법이 있습니다
nb = ((nb1 + nb2) % 10 != 0) && (nb1 + 1 != 0);
'(nb1 + nb2) % 10 && nb1 + 1'은 "두 개의 별개의 것들"이 아닌 하나의 표현식입니다. –
정말 분리 된 두 가지 작업을 수행해야하는 경우 일반적인 'if'문을 사용해야합니다. –