跳转至

4.7 条件运算符

练习 4.21

编写一段程序,使用条件运算符从vector中找到哪些元素的值是奇数,然后将这些奇数值翻倍。

练习 4.22

本节的示例程序成绩划分成high pass、pass和fail三种,扩展该程序使其进一步将60分到75分之间的成绩设定为low pass。要求程序包含连个版本:一个版本只使用条件运算符;另一个辨别使用1个或多个if语句。哪个版本的程序更容易理解?为什么?

练习 4.23

因为运算符的优先级问题,下面这条表达式无法通过编译。根据4.12节中的表(第147页)指出它的问题在哪里?应该如何修改?

string s = "word";
string p1 = s + s[s.size() - 1] == 's' ? "" : "s" ;

练习 4.24

本节的示例程序将成绩划分成high pass、pass和fail三种,它的依据是条件运算符慢速右结合律。假如条件运算符满足的是左结合律,求值过程将是怎样的?