![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=1739052947-vaqJkiYD7f6tK1nS91r1zGPUPKfP2yV1-0-b6f0bbf5aaaac99db76f47b838a1507f)
在某些情况下,可以使用条件运算符“?:”来简化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=1739052947-XhdkkbnHDiVAJ3fHhwjtPR3pvAh7ioeq-0-dc259756d2d0b31946edb147633680b9)
可以用条件运算符“?:”来处理:
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=1739052947-OrWPxEn4Qh4wPNt12hMmW1DeP6OZtR29-0-fa8ed3dd52952a2f56d3ffb814946013)
【例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=1739052947-BVQsWCeLCwhV8pOHvLKKhsOGvOU0wCf0-0-2a2bea1d8697bd0158d338ebfb25e7c5)
【程序分析】本例中定义了两个变量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=1739052947-TuShi33FGUmaQuLpN7xXDmeeqlF9f4Fq-0-20bcdfbbbb5209fd6240c1a92837460d)
图5-10 x小于y时
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P91_13819.jpg?sign=1739052947-Jx7hMfjVx6FBgEztPihs8ZbeozSvThhI-0-ffa17789e51f7115edee8d85f4855ba9)
图5-11 x大于y时