📜  C中的条件运算符

📅  最后修改于: 2020-10-22 00:50:59             🧑  作者: Mango

C中的条件运算符

条件运算符也称为三元运算符。条件语句是决策表达式,它取决于表达式的输出。它由两个符号表示,即“?”和’:’。

由于条件运算符作用于三个操作数,因此也称为三元运算符。

条件运算符的行为类似于“ if-else”语句,因为“ if-else”语句也是决策语句。

条件运算符的语法

Expression1? expression2: expression3;

上述语法的图形表示如下所示:

以上语法的含义。

  • 在上述语法中,expression1是布尔值条件,可以为true或false值。
  • 如果expression1的结果为真值,则将执行expression2。
  • 仅当expression2返回非零值时,才称其为true。
  • 如果expression1返回假值,则将执行expression3。
  • 仅当表达式3返回零值时,才说它为假。

让我们通过一个例子来理解三元或条件运算符。

#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,则执行statement1,即(printf(“有资格参加投票”)),否则,执行statement2,即(printf(“不具备参加投票的资格”) )。

让我们观察以上程序的输出。

如果我们提供18岁以下的用户年龄,则输出为:

如果我们提供18岁以上的用户年龄,则输出将是:

从上面的两个输出可以看出,如果条件为true,则执行statement1;否则,将执行statement2。

到目前为止,我们已经观察到条件运算符如何检查条件,并根据条件执行语句。现在,我们将看到如何使用条件运算符将值分配给变量。

让我们通过一个例子来了解这种情况。

#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。

输出量

上面的输出显示’b’变量的值为3,因为’a’变量的值等于5。

我们知道条件运算符和’if-else’的行为相似,但有一些区别。让我们看看它们之间的差异。

  • 条件运算符是单个编程语句,而’if-else’语句是其中语句位于括号内的编程块。
  • 条件运算符也可以用于为变量分配值,而’if-else’语句不能用于分配目的。
  • 当语句为多个时,对执行语句无用,而在执行多个语句时,’if-else’语句更适合。
  • 嵌套的三元运算符更为复杂,无法轻松调试,而嵌套的“ if-else”语句则易于读取和维护。