조건 연산자라고도 합니다. 삼항 연산자 . 조건문은 표현식의 출력에 따라 달라지는 의사결정문입니다. 두 개의 기호, 즉 '?'로 표현됩니다. 그리고 ':'.
조건 연산자는 세 개의 피연산자에 대해 작동하므로 삼항 연산자라고도 합니다.
조건 연산자의 동작은 ' 다른 경우라면 '문은 'if-else'문과 마찬가지로 의사결정문이기도 합니다.
조건부 연산자의 구문
Expression1? expression2: expression3;
위 구문을 그림으로 표현하면 다음과 같습니다.
위 구문의 의미.
- 위 구문에서 표현식1은 true 또는 false 값이 될 수 있는 부울 조건입니다.
- 표현식1의 결과가 참인 경우 표현식2가 실행됩니다.
- 표현식2는 0이 아닌 값을 반환하는 경우에만 참이라고 합니다.
- 표현식1이 거짓 값을 반환하면 표현식3이 실행됩니다.
- 표현식3은 0 값을 반환하는 경우에만 거짓이라고 합니다.
예를 통해 삼항 연산자나 조건 연산자를 이해해 봅시다.
#include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; }
위 코드에서는 사용자의 '나이'를 입력으로 받습니다. 입력을 받은 후 조건 연산자를 사용하여 조건을 적용했습니다. 이 상태에서 사용자의 나이를 확인하고 있습니다. 사용자의 연령이 18세 이상이면 명령문1이 실행됩니다(즉, (printf('eligible for vote')). 그렇지 않으면 명령문2가 실행됩니다(예: (printf('not Eligible for vote')). ).
위 프로그램의 출력을 살펴보겠습니다.
18세 미만의 사용자 연령을 제공하면 출력은 다음과 같습니다.
18세 이상의 사용자 연령을 제공하면 출력은 다음과 같습니다.
위의 두 출력에서 볼 수 있듯이 조건이 true이면 명령문1이 실행됩니다. 그렇지 않으면 명령문2가 실행됩니다.
지금까지 우리는 조건 연산자가 조건을 확인하고 조건에 따라 명령문을 실행하는 방법을 살펴보았습니다. 이제 조건 연산자를 사용하여 변수에 값을 할당하는 방법을 살펴보겠습니다.
SQL 카운트 고유
예를 통해 이 시나리오를 이해해 보겠습니다.
#include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; }
위 코드에서는 'a'와 'b'라는 두 개의 변수를 선언하고 'a' 변수에 5개의 값을 할당했습니다. 선언 후 조건 연산자를 사용하여 'b' 변수에 값을 할당합니다. 'a'의 값이 5와 같으면 'b'에는 3의 값이 할당되고 그렇지 않으면 2가 할당됩니다.
산출
위의 출력은 'a' 변수의 값이 5이기 때문에 'b' 변수의 값이 3임을 보여줍니다.
조건 연산자와 'if-else'의 동작은 비슷하지만 몇 가지 차이점이 있다는 것을 알고 있습니다. 차이점을 살펴보겠습니다.
- 조건 연산자는 단일 프로그래밍 문인 반면, 'if-else' 문은 문이 괄호 안에 오는 프로그래밍 블록입니다.
- 조건 연산자를 사용하여 변수에 값을 할당할 수도 있지만 'if-else' 문은 할당 목적으로 사용할 수 없습니다.
- 명령문이 여러 개인 경우 명령문을 실행하는 데 유용하지 않지만, 여러 명령문을 실행할 때는 'if-else' 문이 더 적합합니다.
- 중첩된 삼항 연산자는 더 복잡하고 쉽게 디버깅할 수 없는 반면, 중첩된 'if-else' 문은 읽고 유지 관리하기 쉽습니다.