検索

ホームページ  >  に質問  >  本文

c++ - 三元运算符 a = b ?: c 是什么意思

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

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

高洛峰高洛峰2803日前1271

全員に返信(5)返信します

  • PHP中文网

    PHP中文网2017-04-17 12:00:50

    帮你搜索了一下,见StackOverflow

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 12:00:50

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

    返事
    0
  • 黄舟

    黄舟2017-04-17 12:00:50

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

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 12:00:50

    虽然题主的问题的标签是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

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 12:00:50

    格式应该是

    (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;
        }
    

    返事
    0
  • キャンセル返事