搜尋

首頁  >  問答  >  主體

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

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

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

高洛峰高洛峰2803 天前1270

全部回覆(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

    雷雷

    回覆
    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
  • 取消回覆