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),第三部分类似,这个时候几乎就是最简单的形式了,之所以用那们多括号是为了能看到更明白和写的时候更加清晰,


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

相关文章
|
2月前
|
C++
【C++基础】运算符详解
这篇文章详细解释了C++中运算符的用法,包括算术运算符、赋值运算符、比较运算符和逻辑运算符,以及它们在表达式中的作用和示例。
25 2
|
3月前
|
C++
c++学习笔记02 运算符
C++学习笔记,介绍了C++中的运算符,包括基本的加减乘除、求模、前后置递增递减、赋值运算符、比较运算符和逻辑运算符的使用及其注意事项。
38 6
|
5月前
|
C++
C++之运算符
C++之运算符
|
5月前
|
安全 程序员 C++
C++一分钟之-重载运算符
【6月更文挑战第21天】C++的运算符重载让程序员能为自定义类型定制运算符行为,增强代码表达力。但要注意清晰性、优先级和返回类型。遵循运算符原有意义,充分测试,并用注释解释非直观设计。示例展示了如何为复数类重载`+`运算符。避免重载内置类型,注意结合性,且慎用隐式转换。重载应提升可读性而非复杂化代码。
45 2
|
5月前
|
C++
C++一分钟之-理解C++的运算符与表达式
【6月更文挑战第18C++的运算符和表达式构成了编程的基础,涉及数学计算、逻辑判断、对象操作和内存管理。算术、关系、逻辑、位、赋值运算符各有用途,如`+`、`-`做加减,`==`、`!=`做比较。理解运算符优先级和结合律至关重要。常见错误包括优先级混淆、整数除法截断、逻辑运算符误用和位运算误解。解决策略包括明确优先级、确保浮点数除法、正确使用逻辑运算符和谨慎进行位运算。通过实例代码学习,如 `(a &gt; b) ? &quot;greater&quot; : &quot;not greater&quot;`,能够帮助更好地理解和应用这些概念。掌握这些基础知识是编写高效、清晰C++代码的关键。
35 3
|
6月前
|
C++
c++运算符
c++运算符
53 2
|
6月前
|
程序员 编译器 C++
c++重载运算符和重载函数
c++重载运算符和重载函数
35 1
|
6月前
|
存储 安全 程序员
C++中的四种类型转换运算符
reinterpret_cast` 则是非常危险的类型转换,仅用于二进制级别的解释,不检查安全性。`dynamic_cast` 用于类的继承层次间转换,向上转型总是安全的,向下转型时会借助 RTTI 进行安全性检查。只有当转换路径在继承链内时,转换才会成功。
|
5月前
|
编译器 C++
C++运算符的重载
C++运算符的重载
24 0