在我用来学习C的Big Nerd Ranch C书中,据说"每当你有一个基于条件赋值给变量的场景时,你就有了'条件/三元运算符'的候选者,是?。"
所以我的问题是,有人可以向我解释以下代码段:
int i = 20;
int j = 25;
int k = (i > j) ? 10 : 5;
if (5 < j - k) {
//First expression
printf("the first expression is true.");
} else if ( j > i ) {
//Second Expression
printf("The second expression is true.");
} else {
printf("Neither expression is true.");
}
答案 0 :(得分:2)
示例中的int k = (i > j) ? 10 : 5;
相当于:
if (i > j)
{
int k = 10;
}
else
{
int k = 5;
}
三元运算符只是在根据条件分配值时if-conditionals特殊情况的快捷方式。
如果删除不完整的else if
代码段,其余的代码段并不难理解:
if (5 < j(25) - k(5)) == if (5 < 20)
{
printf("the expression is true.");
}
else
{
printf("the expression is false.");
}
由于5
小于25 - 5 = 20
,此程序将打印“第一个表达式为真”。