C/C++中三目运算符(条件运算符)的使用详解

简介: C/C++中三目运算符(条件运算符)的使用详解

三目运算符由两大部分组成,“?”前面的是判断条件,如果前面的运算结果是1,即前面的条件成立,执行“:”前面,“?”后面的执行结果,反之则执行“:”后面的表达式。


c=a>b?a:b;


让我们看一下这行代码,首先最外面的括号是为了输出最后的结果,如果a>b,前面的表达是为真执行c=a,如果a<b,前面的表达式为假,执行c=b;


这只是一个简单的使用方法,现在让我们思考一下,这个题目,四个数如何用三元运算符求最大值。


cout << (a > b ? (a > c ? (a > d ? a : d) : (c > d ? a : d)) : (b > c ? (b > d ? b : d) : (c > d ? c : d)));


让我们看一下这行代码,首先最外面的括号是为了输出最后的结果没有它,那么输出的结果只会是0或者1,这显然不是我们想要的结果,其中的原理是首先分为三个部分,第一个部分a > b ?,


第二个部分 (a > c ? (a > d ? a : d) : (c > d ? a : d)) :,第三个部分(b > c ? (b > d ? b : d) : (c > d ? c : d)),这是最外面的条件和结果,我们还需要拆分,


第二个部分又能分为a > c ?,(a > d ? a : d),和: (c > d ? a : d),第三部分类似,这个时候几乎就是最简单的形式了,之所以用那们多括号是为了能看到更明白和写的时候更加清晰,


除了最外面的括号当然都可以省略,相信诸位都能看懂了,只要掌握了这个几乎问题都不大了。

相关文章
|
1月前
|
C++
|
1月前
|
存储 C++
C++系列六:运算符
C++系列六:运算符
|
1月前
|
C++
在C++语言中赋值运算符
在C++语言中赋值运算符
11 0
|
1月前
|
存储 算法 编译器
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
47 0
|
1月前
|
算法 C++ 开发者
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
36 0
|
1月前
|
算法 程序员 C++
【C++运算符重载】探究C++中的下标运算符[]重载
【C++运算符重载】探究C++中的下标运算符[]重载
14 0
|
1月前
|
算法 程序员 编译器
【C++ 运算符重载】C++中的运算符重载:深入探讨++和--运算符
【C++ 运算符重载】C++中的运算符重载:深入探讨++和--运算符
26 0
|
1月前
|
编译器 C语言 C++
C/C++运算符超详细讲解(系统性学习day5)
C/C++运算符超详细讲解(系统性学习day5)
|
1月前
|
C++
在C++语言中自增自减运算符
在C++语言中自增自减运算符
11 0
|
5天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0