삼항 연산자에 대한 자세한 설명
일부 선택 분기 구조의 경우 간단한 조건 연산자를 대신 사용할 수 있습니다. 예:
if(a<b) min=a; else min=b;
는 다음 조건부 연산자
min=(a<b)?a:b;
로 처리할 수 있습니다. 여기서 "(a
조건 연산자는 "?"와 ":" 두 개의 기호로 구성되며 3개의 연산 개체가 필요하므로 C 언어의 유일한 삼항 연산자라고도 합니다.
일반적인 형식은 다음과 같습니다.
表达式1?表达式2:表达式3;
다음은 조건 연산자에 대한 몇 가지 참고 사항입니다.
(1) 식 1은 조건을 설명하는 데 사용되는 관계식 또는 논리식입니다. 식 2와 식3은 상수, 변수 또는 표현식. 예:
(x==y)?'Y':'N' (d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d) ch=(ch>='A'&&ch<='Z')?(ch+32):ch
위 내용은 모두 합법적인 조건식입니다.
관련 추천: "FAQ"
(2) 실행 순서: 먼저 수식 1을 푼다. 값이 0이 아니면 조건이 참이라는 뜻이고, 그런 다음 수식 2를 푼다. 이때 값은 2번 표현식 전체의 값으로 사용됩니다.
1번 표현식의 값이 0이면 조건이 거짓이라는 뜻이고, 3번 표현식이 풀리고 3번 표현식의 값이 됩니다. 전체 조건식의 예:
(a>=0)?a:-a 실행 결과는 a
(3)의 절대값입니다. 프로그램에서는 조건식의 값을 변수에 직접 대입합니다. 예를 들면
min=(a
(4) 조건식의 우선 순위 수준은 할당 연산자보다 높지만 이전에 만난 모든 연산자보다 낮습니다.
따라서 min=(a
(5)과 동일하지 않음 조건 연산자의 조합 방향은 "오른쪽에서 오른쪽으로"입니다. 왼쪽" .
(6) 조건식은 중첩될 수 있습니다. 즉, 조건식의 표현식 2와 표현식 3이 또 다른 조건식이 될 수 있습니다. 예:
x>0?1:x<0?-1:0
위 조건식에서 식의 세 번째 부분은 또 다른 조건식입니다. 조건식의 연관성에 따르면 위 조건식은 다음과 동일합니다.
x>0?1:(x<0?-1:0)
해당 기능은 x의 부호를 결정하는 것입니다. x가 양수이면 조건식의 값은 1이고, x가 음수이면 조건식의 값은 -1이고, x가 0이면 조건식의 값은 0입니다.
(7) 조건식은 if 문에 포함된 문이 할당 문인 경우에만 if 문을 대체할 수 있습니다(그리고 두 분기 모두 동일한 변수에 값을 할당합니다). 예를 들어,
if(a%2==0) printf("even/n"); else printf("odd/n");
는
(a%2==0)?printf("even/n"):printf("odd/n");
로 쓸 수 없지만 다음 문으로 대체할 수 있습니다.
printf("%s/n",(a%2==0?"even":"odd");
이 문의 기능은 다음과 같습니다. a가 짝수이면 a가 홀수이면 짝수를 출력합니다. 숫자, 홀수를 출력합니다.
(8) 표현식 1, 표현식 2, 표현식 3의 유형은 다를 수 있습니다. 이때 조건식의 값 유형은 그 중 상위 유형이다. 예:
main() { char c1, ch; ch = getchar(); c1 = ch <= 'Z' && ch >= 'A' ? ' @ ' : ch ; putchar(c1); }
이 프로그램의 기능은 키보드에서 문자를 입력하고 대문자인지 확인하는 것입니다. 그렇다면 @를 출력하고, 그렇지 않으면 위 예의 6행을 그대로 출력합니다. 프로그램은 입력 문자의 판단, 선택 및 대체 작업을 구현하는 핵심 명령문입니다.
실행 과정은 먼저 이 명령문의 할당 번호 오른쪽에 있는 조건 연산자를 사용하여 입력 문자를 판단하고 선택하는 것입니다. ch>='A'&&ch<='Z'가 true이면 ch를 의미합니다. 대문자 영문자이면 @를 선택하고, 그렇지 않으면 원래 문자 ch를 선택한 다음 선택한 결과를 원래 변수 ch에 할당합니다.
위 내용은 삼항 연산자는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!