문제

int qempty()
{
    return (f == r ? 1 : 0);
}

위의 스 니펫에서 무엇을 하는가 "?"의미? 우리는 무엇으로 교체 할 수 있습니까?

도움이 되었습니까?

해결책

이것은 일반적으로 THE라고합니다 조건부 운영자, 그리고 다음과 같이 사용될 때 :

condition ? result_if_true : result_if_false

...라면 condition 평가합니다 true, 표현은 평가합니다 result_if_true, 그렇지 않으면 평가합니다 result_if_false.

그것은이다 구문 설탕, 그리고이 경우 교체 할 수 있습니다.

int qempty()
{ 
  if(f == r)
  {
      return 1;
  } 
  else 
  {
      return 0;
  }
}

메모: 어떤 사람들은 언급합니다 ?: 그것은 "로"3 원 운영자", 그것은 그들이 사용하는 언어로 유일한 3 가지 운영자 (즉, 세 가지 인수)이기 때문입니다.

다른 팁

이것은 제 3의 연산자입니다. 기본적으로 인라인 if 문입니다.

x ? y : z

작동합니다

if(x) y else z

진술 대신 표현이 있습니다. 따라서 더 복잡한 진술의 중간에 사용할 수 있습니다.

간결한 코드를 작성하는 데 유용하지만 코드를 유지하기 어려운 코드를 만들기 위해 과용 할 수 있습니다.

다음과 같이 다시 작성할 수 있습니다.

int qempty(){ return(f==r);}

다른 답변에서 말하는 것과 같은 일을합니다.

그것은라고합니다 조건부 운영자.

당신은 그것을 대체 할 수 있습니다 :

int qempty(){ 
    if (f == r) return 1;
    else return 0;
}

조건부 운영자입니다.

ㅏ ? B : c

if/the/else의 바로 가기입니다.

의미 : A가 참이면 B를 반환하고 그렇지 않으면 반환 c. 이 경우 f == r이면 1을 반환하면 0을 반환합니다.

당신이 이것을 본 적이 있다면, 메모 :

a = x ? : y;

표준에 대한 GNU 확장입니다 (참조 https://gcc.gnu.org/onlinedocs/gcc/conditionals.html#conditionals).

그것은 동일합니다

a = x ? x : y;

물음표는 조건부 연산자입니다. 코드는 f == r이면 1이 반환되면, 그렇지 않으면 0을 반환한다는 것을 의미합니다. 코드를 다시 작성할 수 있습니다.

int qempty()
{
  if(f==r)
    return 1;
  else
    return 0;
}

아마도 가장 깨끗한 방법은 아니지만, 당신의 이해에 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top