![C++ 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/805/26846805/b_26846805.jpg)
上QQ阅读APP看书,第一时间看更新
5.6 条件运算符与条件表达式
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P90_13707.jpg?sign=1739410699-7YsiFTQkNXVZEJOm3fS5tQ15lDpflkuV-0-62bfb0b50078fd4d8534467665f833da)
在某些情况下,可以使用条件运算符“?:”来简化if语句。条件运算符要求有3个操作对象,称三目(元)运算符,它是C++中唯一的一个三目运算符。
其语法格式如下:
<表达式1> ? <表达式2> : <表达式3>
条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。
例如:
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P90_13709.jpg?sign=1739410699-bNvxReKOysRWvTSrR1HSHAgPZTa05MaT-0-2a205fc8ed54396837dc87a4fb45c1d8)
可以用条件运算符“?:”来处理:
max=(a>b)?a:b;
其中,“(a>b)?a:b”是一个“条件表达式”。它的执行过程:如果(a>b)条件为真,则条件表达式的值就取“?”后面的值,即条件表达式的值为a,否则条件表达式的值为“:”后面的值,即b。
例如:
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P90_72148.jpg?sign=1739410699-EllT84DEFutqCCMSYqXcukNgAiSKK7F2-0-d1181a3e863700cd94fc5c176e23ca7b)
【例5-9】编写程序,输出一个需要的值。
(1)在Visual Studio 2017中,新建名称为“5-9.cpp”的Project9文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P91_72150.jpg?sign=1739410699-DcnSWKgMaGlJVJshTX9YK5OzkOaq0Qhn-0-4c6a406a78d42e1675d21a8a65b92ac9)
【程序分析】本例中定义了两个变量x和y。先给y赋值10,然后使用cin语句输入x的值。如果输入的x值大于10,就输出x的值,否则就输出y的值。
在Visual Studio 2017中的运行结果如图5-10和图5-11所示。
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P91_72157.jpg?sign=1739410699-Qkhib00sXAwfopjnZ4wg9rcZpHxldjwe-0-8e5588aaadf68a6684fb1fb7939c5529)
图5-10 x小于y时
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P91_13819.jpg?sign=1739410699-1dGYBAatDDyNRizLaWmYaCq5cICOAjpz-0-56fd18a58d887d5904736ee4511e5f78)
图5-11 x大于y时