5.6 条件运算符与条件表达式

在某些情况下,可以使用条件运算符“?:”来简化if语句。条件运算符要求有3个操作对象,称三目(元)运算符,它是C++中唯一的一个三目运算符。

其语法格式如下:

    <表达式1>   ? <表达式2>  :  <表达式3>

条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

例如:

可以用条件运算符“?:”来处理:

    max=(a>b)?a:b;

其中,“(a>b)?a:b”是一个“条件表达式”。它的执行过程:如果(a>b)条件为真,则条件表达式的值就取“?”后面的值,即条件表达式的值为a,否则条件表达式的值为“:”后面的值,即b。

例如:

【例5-9】编写程序,输出一个需要的值。

(1)在Visual Studio 2017中,新建名称为“5-9.cpp”的Project9文件。

(2)在代码编辑区域输入以下代码。

【程序分析】本例中定义了两个变量x和y。先给y赋值10,然后使用cin语句输入x的值。如果输入的x值大于10,就输出x的值,否则就输出y的值。

在Visual Studio 2017中的运行结果如图5-10和图5-11所示。

图5-10 x小于y时

图5-11 x大于y时