鱼C论坛

 找回密码
 立即注册
查看: 1474|回复: 3

[已解决]谁能帮我解释一下这个三元运算符

[复制链接]
发表于 2023-9-5 23:11:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
谁能帮我解释一下这个三元运算符实在想不通
求通俗易懂举例子的方式给我解释一下,谢谢各位大佬
int Max3( int A, int B, int C )
{ /* 返回3个整数中的最大值 */
    return A > B ? A > C ? A : C : B > C ? B : C;
}
最佳答案
2023-9-6 10:54:02
return A > B ? (A > C ? A : C) : (B > C ? B : C);
加个括号就直接能看懂啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-5 23:11:33 | 显示全部楼层
三元运算符是一种在编程中经常使用的条件语句。它通常以以下形式表示:condition ? value1 : value2

其作用是根据条件的真假来选择返回不同的值。如果条件为真,返回value1;如果条件为假,返回value2

下面我们以你提供的代码为例解释一下三元运算符的使用:
int Max3(int A, int B, int C) {    return A > B ? A > C ? A : C : B > C ? B : C;}
上述代码表示定义了一个函数Max3,它接受三个整数参数A、B、C,并返回这三个整数中的最大值。

让我们逐步分解这个三元运算符的嵌套使用:
- 表达式A > B ? A > C ? A : C : B > C ? B : C中的第一个三元运算符判断A > B是否为真,如果是真的话,则继续判断A > C是否为真。如果第一个条件为假,则直接跳到第二个三元运算符。
- 如果A > B为真且A > C也为真,则返回A,表示A是最大值。
- 如果A > B为真但A > C为假,则返回C,表示C是最大值。
- 如果A > B为假,则执行第二个三元运算符,判断B > C是否为真。如果为真,则返回B,表示B是最大值。
- 如果B > C为假,则返回C,表示C是最大值。

综上所述,这段代码使用了两个嵌套的三元运算符来比较三个数的大小,最终返回最大的那个数作为结果。

希望以上解释对你有帮助!如果还有任何疑问,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-5 23:11:37 | 显示全部楼层
三元运算符是一种有三个操作数的运算符,用于在条件为真时返回一个值,否则返回另一个值。它的语法是 条件表达式 ? 表达式1 : 表达式2 。

在你给出的例子中, Max3 函数用于返回三个整数中的最大值。让我们来解释一下这个三元运算符的使用。

首先,我们可以将这个三元运算符分解为两个部分:

1.  A > B ? A > C ? A : C :首先比较A和B的大小,如果A大于B,则继续比较A和C的大小,如果A大于C,则返回A,否则返回C。

2.  B > C ? B : C :如果A小于等于B,则比较B和C的大小,如果B大于C,则返回B,否则返回C。

因此,整个表达式的含义是,首先比较A和B的大小,如果A大于B,则继续比较A和C的大小,返回较大的值;如果A小于等于B,则比较B和C的大小,返回较大的值。

举个例子来说明,假设A=3,B=5,C=2。首先比较A和B的大小,由于A小于等于B,所以继续比较B和C的大小,由于B大于C,所以返回B,即最大值为5。

希望这样的解释对你有帮助!如果你还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-6 10:54:02 | 显示全部楼层    本楼为最佳答案   
return A > B ? (A > C ? A : C) : (B > C ? B : C);
加个括号就直接能看懂啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 13:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表