标签: conditional-operator

4
推荐指数
2
解决办法
1678
查看次数

条件运算符总是可以用if/else替换?

到目前为止,我认为条件运算符int a = b == 2 ? x1 : x2;总是可以被if/else语句替换.

int a;
if (b == 2)
  a = x1;
else
  a = x2;
Run Code Online (Sandbox Code Playgroud)

两者中的一个之间的选择总是一个品味问题.今天我正在处理一个任务,如果我可以写一个参考将是有用的:

int& a;
if (b == 2)
  a = x1;
else
  a = x2;
Run Code Online (Sandbox Code Playgroud)

这是不允许的,我尝试使用条件运算符初始化引用.这是有效的,我开始意识到,条件运算符并不总是可以被if/else语句替换.

我对这个结论是对的吗?

c++ conditional-operator

4
推荐指数
1
解决办法
1891
查看次数

这个简单的条件运算符将在编译时优化吗?(.净)

使用遗留代码,我发现我得到了很多这样的声明(超过500个)

bool isAEqualsB = (a == b) ? true : false;
Run Code Online (Sandbox Code Playgroud)

像这样重写它是否有意义?

bool isAEqualsB = (a == b)
Run Code Online (Sandbox Code Playgroud)

或者将在编译时进行优化?

提前致谢,

桑蒂!=)

.net c# optimization performance conditional-operator

4
推荐指数
1
解决办法
264
查看次数

将三元条件运算符转换为if语句?

使用看起来像这样的缩小代码,

f&&!f.error?k.button.b==k.button.c.G?k.button.Q(b,e,f,c,d):k.button.b==k.button.c.o&&k.button.P(b,e,f,c,d):(console.error(f),f=f.error.message||chrome.i18n.getMessage("error_tooltip"),k.button.v(b.id,f),d({action:"error"}))
Run Code Online (Sandbox Code Playgroud)

是否有一个自动化工具可以将一行条件运算符转换为一系列if语句?

例1:

(i < 0 ? function1() : function2())
Run Code Online (Sandbox Code Playgroud)

if (i < 0) {
    function1();
} else {
    function2();
}
Run Code Online (Sandbox Code Playgroud)

例2:

(i < 0 ? function1() : (i === 0 ? function2() : function3()))
Run Code Online (Sandbox Code Playgroud)

if (i < 0) {
    function1();
} else {
    if (i === 0) {
        function2();
    } else {
        function3();
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript syntax if-statement conditional-operator

4
推荐指数
1
解决办法
7007
查看次数

PHP:检查发布变量是否存在或分配空值

这可以使用isNAN而不是!isset在Javascript中完成.使用下面的示例 - 两个表单都发布到我的脚本,一个没有值,一个有值.如果post var不存在,下面的代码是否是在PHP中执行此操作以正确分配值的正确方法?

$ mycheck =!isset($ _ POST ['value'])?0:$ _POST ['value'];

<? 
if($_POST) :
  $mycheck = !isset($_POST['value']) ? 0 : $_POST['value'];
  echo $mycheck;
endif;
?>

<!-- send value-->
<form action="" method="post">
  <select name="value">
    <option value="0">0</option>
    <option value="5">5</option>
  </select>
  <input type="submit" name="submit">
</form>

<!-- doesn't send value-->
<form action="" method="post">
  <input name="different_var">
  <input type="submit" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

php conditional-operator

4
推荐指数
1
解决办法
1万
查看次数

python复合和/或条件

if tarX == 'ini' or 'txt' and act == 'm':
Run Code Online (Sandbox Code Playgroud)

在普通英语中,if语句需要验证2个条件是否为真:

  1. tarX(变量)是ini或txt
  2. 该行为(变量)等于m

我尝试了几种变化无济于事.我确定这是我的语法/逻辑错误而不是python无能.下面的语句起作用是因为(假设)和语句左边的条件比较一个变量(tarX)表示单个字符串(exe)的相等性,同样适用于右变量(act)上的条件(与)相比(米).我假设我没有正确"打包"if tarX =='ini'或'txt'和act =='m':声明.

如果tarX =='exe'并且act =='m':

python if-statement conditional-operator conditional-statements

4
推荐指数
1
解决办法
9316
查看次数

在列表理解中实现三元条件运算符

我试图在列表理解中实现三元条件运算符.我写得像这样:

lst.append(dict2obj(item)) if type(item) is not in ['int'] else lst.append(item) for item in v
Run Code Online (Sandbox Code Playgroud)

lst空列表在哪里,v是另一个包含各种元素的列表.编辑器在语法上显示它不正确.我究竟做错了什么?

python list-comprehension list conditional-operator

4
推荐指数
1
解决办法
1055
查看次数

使用'&&'和'||'有什么区别 通过三元运算符('?'和':')?

在JavaScript中,使用之间有什么区别

true ? 'Hello' : 'Goodbye' //Evaluates to "Hello"

false ? 'Hello' : 'Goodbye' //Evaluates to "Goodbye"
Run Code Online (Sandbox Code Playgroud)

true && 'Hello' || 'Goodbye' //Evaluates to "Hello"

false && 'Hello' || 'Goodbye' //Evaluates to "Goodbye"
Run Code Online (Sandbox Code Playgroud)

javascript conditional conditional-operator

4
推荐指数
2
解决办法
576
查看次数

条件运算符的值类别

请考虑以下代码:

int x;
int& f() {
  return x ? x : throw 0;
}
Run Code Online (Sandbox Code Playgroud)

随着gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)我得到以下编译错误:

cannot bind non-const lvalue reference of type ‘int&’ to an rvalue of type ‘int’
Run Code Online (Sandbox Code Playgroud)

请注意,这在clang中编译得很好.以下是(我相信的)标准中的相关陈述:

N4659 [8.16.2.1](条件运算符):
第二个或第三个操作数(但不是两个)是一个(可能带括号的)throw-expression(8.17); 结果是另一个的类型和值类别.

据我所知,x是一个左值,所以在我看来clang是对的.我错了吗?


如果我不得不猜测,那么l-to-rvalue转换正在发生,因为条件中的两个表达式没有相同的类型,但因为第二个是抛出,所以应该抢占此转换.我不熟悉提交错误报告,但也许这将是一个更好的论坛.
以下是关于条件运算符的一些(可能)更有用的问题:
为什么此函数在给定rvalue参数的情况下返回左值引用?
错误:这个简单的C代码需要左值?(三元有任务吗?)

c++ g++ conditional-operator language-lawyer value-categories

4
推荐指数
1
解决办法
151
查看次数

Java设置值if if else在一行中循环

如果在一行中,如何设置内部值?

String amount = myJSON.optString("cValue")
double cValue = (amount != null && !amount.isEmpty()) ? Double.parseDouble(amount) : 0;
if (cValue > 0) {
    mySavings.setCouponValue(cValue);
} else {
    mySavings.setCouponValue(0.0);
}
Run Code Online (Sandbox Code Playgroud)

java if-statement ternary-operator conditional-operator

4
推荐指数
1
解决办法
143
查看次数