Heim > Fragen und Antworten > Hauptteil
注意:我很清楚 a = b ? c : d 是什么意思,可这不是我要问的问题。
三元运算符 a = b ?: c 是什么意思。注意, ?和: 是在一起的
黄舟2017-04-17 12:00:50
b = true
c = false
a = b ?: c // a = true
b = false
c = true
a = b ?: c // a = true
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
的意思就是:如果b
为true
,则a = b
,如果b
为false
,则a = c
伊谢尔伦2017-04-17 12:00:50
格式应该是
(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; }