c++ - 三元运算符 a = b ?: c 是什么意思
高洛峰
高洛峰 2017-04-17 11:58:50
[C++讨论组]

注意:我很清楚 a = b ? c : d 是什么意思,可这不是我要问的问题。

三元运算符 a = b ?: c 是什么意思。注意, ?和: 是在一起的

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
PHP中文网

帮你搜索了一下,见StackOverflow

PHP中文网

a = b ?: ca = b ? b : c 的简写。

黄舟
b = true
c = false
a = b ?: c  // a = true

b = false
c = true
a = b ?: c // a = true
ringa_lee

虽然题主的问题的标签是C和C++,但我写了一个PHP的脚本测试了一下,结果如下:

php<?php
$b = true;
$c = false;
$a = $b ?: $c;
var_dump($a); // 输出true

$b = false;
$c = true;
$a = $b ?: $c;
var_dump($a); // 输出true

从输出结果来看,a = b ?: c的意思就是:如果btrue,则a = b,如果bfalse,则a = c

伊谢尔伦

格式应该是

(boolean表达式) ? a : b

如果boolean表达式的内容为true,则a。
如果boolean表达式的内容为false, 则b。

举个例子:

javapublic int test(int a) {
    if (a > 0) {
        return 1;
    } else {
        return -1;
    }
}

上面这个if-else可以用三元运算来代替,如下:

java    public int test(int a) {
        return (a > 0) ? 1 : -1;
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号