合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 【伴随编程】问号表达式 在之前的课程中间我们已经实现过上面的这样一个程序了,在这其中,我们学会了如何使用 `if` 和 `else`。然而,针对这种简短的条件语句,在 C 语言中提供了一种更好的表达方式——问号表达式。不同于其它接受一个值的单目运算符(如 `!` 等)和只接受两个值的双目运算符(如 `+`, `-` 等),问号表达式使用了一个 **三目运算符** —— `?:`。问号表达式的形式如下: ~~~ 条件 ? 条件为真的取值 : 条件为假的取值 ~~~ 对于原先的程序,我们就可以直接条件语句根据条件决定赋值的部分改造为一个问号表达式: ~~~ y = (x >= 0 ? 1 : -1); ~~~ ``` #include <iostream> using std::cin; using std::cout; using std::endl; int main() { int x; int y; // 从用户处获得输入值 x cout << "请输入 x 的值:"; cin >> x; // 在下面完成你的逻辑 if (x >= 0) { y = 1; } else { y = -1; } // 接下来的部分会输出 y 的结果 cout << "y = " << y << endl; return 0; } ``` 太棒了,你完成的很好!在 ~~~ y = (x >= 0 ? 1 : -1); ~~~ 这一行中,`x >= 0`为真时,括号内的这个问号表达式取值为`1`,当`x >= 0`不为真时,括号内的这个问号表达式取值为`-1`。相应的,`y`这个变量所获得赋值也会随着`x`的不同而不同。运用问号表达式带来的效果和 if 条件语句是完全一样。点击 **运行** 看看程序运行的结果吧! 在以后的程序设计过程中,如果条件语句块比较简单(例如这里的赋值语句),你就可以考虑一下是否可以直接用问号表达式来代替复杂的写法了。