2016-09-14 3 views
-4
int a = 5, b = 7; 
int N = a == b ? a : a + b == 10 ? a + b : 0; 

다음 코드의 의미는 무엇입니까? 업데이트 : 주로 어떤 원인을 사용할 수 있고 어떻게 작동하는지 알고 싶습니다. N"int N = a == b? a : a + b == 10? a + b : 0;"의 의미

int N = (a == b) ? a : ((a + b) == 10) ? (a + b) : 0; 

이 할당 : 암시 괄호

+1

어느 부분에서 문제가 있습니까? –

+5

[** ** 삼자 연산자 **] (https://en.wikipedia.org/wiki/%3F :)에 대한 정보를 찾을 수 있습니다. 또한 if-else [this ** very site **] (https://stackoverflow.com/questions/1659992/if-else-vs-ternary-operator)와 비교하여 토론했습니다. – WhozCraig

+1

이것이 도움이된다면 if 문을 사용하면 다음과 같이됩니다. http://pastebin.com/raw/LCvjaYFw –

답변

0

이 표현은 동일하다 동일

  1. a의 값 a 경우 b. 그렇지 않은 경우 ...
  2. a + b의 값이 N 인 경우 a + b의 값입니다. 그렇지 않은 경우 ...
  3. 값이 0입니다.

주어진 해의 2 월 일 수를 계산할 때이 구문을 자주 사용했습니다.

int febDays = (year % 4 != 0) ? 28 : 
       (year % 100 != 0) ? 29 : 
        (year % 400 != 0) ? 28 : 29; 
관련 문제