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


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

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

c C++ objective-c

人形自走推妹机 10 years, 2 months ago

虽然题主的问题的标签是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 的意思就是:如果 b true ,则 a = b ,如果 b false ,则 a = c

钉宫其实是狮子 answered 10 years, 2 months ago


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

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

朝夜神社的巫女 answered 10 years, 2 months ago

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

东风寺沙耶 answered 10 years, 2 months ago

帮你搜索了一下,见 StackOverflow

中** * answered 10 years, 2 months ago

格式应该是

(boolean表达式) ? a : b

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

举个例子:


 java


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

一包辣条233 answered 10 years, 2 months ago

Your Answer