在我用来学习 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.");
}
最佳答案
int k = (i > j) ? 10 : 5;
在您的示例中相当于:
if (i > j)
{
int k = 10;
}
else
{
int k = 5;
}
三元运算符只是根据条件赋值时 if 条件特殊情况的快捷方式。
如果删除不完整的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
,该程序将打印“第一个表达式为真”。
关于c - 使用三元条件运算符和其他两个 int 的值分配 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24851777/