标签: ternary-operator

matlab中的三元运算符

有没有办法输入如果喜欢:

var = (cond) ? true : false;
Run Code Online (Sandbox Code Playgroud)

还是我们必须使用这种格式?

if (cond)
 true
else
 false
end
Run Code Online (Sandbox Code Playgroud)

matlab if-statement ternary-operator conditional-operator

28
推荐指数
6
解决办法
5万
查看次数

使用没有Else语句PHP的Ternary运算符

您是否可以在PHP中使用三元运算符而不关闭'else'语句?我已经尝试过了,它会返回错误.谷歌搜索没有产生任何东西,所以我认为答案可能不是.我只是想在这里仔细检查一下.例如:

if ( isset($testing) {
  $new_variable = $testing;
}
Run Code Online (Sandbox Code Playgroud)

如果存在$ testing,则仅设置$ new_variable.现在我能做到

$new_variable = (isset($testing) ? $testing : "");
Run Code Online (Sandbox Code Playgroud)

但如果未设置$ testing,则返回$ new_variable的空变量.如果没有设置,我不想要一个空变量,我希望不创建$ new_variable.

我试过了

$new_variable = (isset($testing) ? $testing);
Run Code Online (Sandbox Code Playgroud)

它返回了错误.我也试过了

$new_variable = (isset($testing) ? $testing : );
Run Code Online (Sandbox Code Playgroud)

它也返回了错误.有没有办法在没有附加其他声明的情况下使用三元运算符,或者我是不是刻意写出来?

编辑:按照Rizier123的建议,我尝试将等式的'else'部分设置为NULL,但它仍然最终将一个键附加到数组.价值不存在,但关键是,这会弄乱我的计划.请允许我进一步解释.

代码将从表单中获取一堆$ _POST变量,并将它们用于stdClass中的参数,然后将其用于API方法调用.一些表单变量将不存在,因为它们都应用于API调用的同一变量,但用户只能选择一个.例如,您可以选择3个项目,无论您选择哪个项目传递给stdClass,另外2个项目都不存在.

我试过这个:

$yes_this_test = "IDK";
$setforsure = "for sure";
$list = new stdClass;
$list->DefinitelySet = $setforsure;
$list->MaybeSet = (isset($yes_this_test) ? $yes_this_test : NULL);
$list->MaybeSet = (isset($testing) ? $testing : NULL);
print_r($list);
Run Code Online (Sandbox Code Playgroud)

但显然MaybeSet被设置为NULL,因为(isset($ testing)在(isset($ yes_this_test)之后)返回

stdClass Object ( [DefinitelySet] => for …
Run Code Online (Sandbox Code Playgroud)

php if-statement ternary-operator

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

Java的简短形式如果Else声明

我有一个检查空值的方法.有没有办法减少方法中的行数?目前,代码看起来"脏":

private int similarityCount (String one, String two) {

    if (one == null && two == null) {
        return 1;
    } else if (one == null && two != null) {
        return 2;
    } else if (one != null && two == null) {
        return 3;
    } else {
        if(isMatch(one, two))
             return 4;
        return 5;
    }

}
Run Code Online (Sandbox Code Playgroud)

java if-statement short ternary-operator

28
推荐指数
6
解决办法
5361
查看次数

是否有一个Matlab条件IF运算符可以像VBA的IIF一样放在INLINE中

在VBA中,我可以执行以下操作:

A = B + IIF(C>0, C, 0)
Run Code Online (Sandbox Code Playgroud)

所以,如果C> 0,我得到A=B+C,C <= 0,我得到A=B

是否有一个运算符或函数可以让我在MATLAB代码中内联这些条件?

matlab vba ternary-operator conditional-operator iif

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

得到了x?y:z表达式的意外答案

这是一个简单的C++代码段:

int x1 = 10, x2=20, y1=132, y2=12, minx, miny, maxx, maxy;
x1<=x2 ? minx=x1,maxx=x2 : minx=x2,maxx=x1;
y1<=y2 ? miny=y1,maxy=y2 : miny=y2,maxy=y1;
cout<<"minx="<<minx<<"\n";
cout<<"maxx="<<maxx<<"\n";
cout<<"miny="<<miny<<"\n";
cout<<"maxy="<<maxy<<"\n";
Run Code Online (Sandbox Code Playgroud)

我认为结果应该是:

minx=10
maxx=20
miny=12
maxy=132
Run Code Online (Sandbox Code Playgroud)

但实际上结果是:

minx=10
maxx=10
miny=12
maxy=132
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么maxx不是20?谢谢.

c++ ternary-operator operator-precedence comma-operator c++11

27
推荐指数
3
解决办法
1255
查看次数

三元运算符,使用赋值时出现语法错误

下面的3行代码编译好了.(请注意,此代码是"人工Java编码"的示例,因此在专业编写的代码中不会出现.)

int x, y;
boolean b=true;

x = b ? y=1 : 2;  // Compiles OK.
Run Code Online (Sandbox Code Playgroud)

如果我现在更改上面第3行中的代码,使其看起来像下面的代码行,编译器会生成错误.

// Change the position of the "y assignment", and now the code doesn't compile.
x = b ? 1 : y=2;  
Run Code Online (Sandbox Code Playgroud)

这是语法错误消息:

三元运算符语法错误

有人可以解释这种行为(对新手Java学习者)吗?谢谢.

java ternary-operator

27
推荐指数
1
解决办法
1240
查看次数

Razor三元表达式中的Html字面值

我正在尝试做类似以下的事情

<div id="test">
    @(
        string.IsNullOrEmpty(myString)
          ? @:&nbsp;
          : myString   
    )
</div>
Run Code Online (Sandbox Code Playgroud)

上面的语法是无效的,我尝试了很多不同的东西,但无法让它工作.

html ternary-operator razor asp.net-mvc-3

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

使用三元运算符分配?

我在Perl 5.8上,我需要指定一个默认值.我最终这样做了:

if ($model->test) {
    $review = "1"
} else {
    $review = ''
}
Run Code Online (Sandbox Code Playgroud)

$model->test将是"1"或未定义.如果有某些内容$model->test,则将$review"1"设置为等于''.

因为它不是Perl 5.10我不能使用新的时髦定义的或运算符.我的第一反应是使用这样的三元运算符......

defined($model->test) ? $review = "1" : $review = '';
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

有谁知道如何更有效地分配这个?珍妮

variables perl ternary-operator

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

为什么braced-init-list不能用于三元运算符?

我的编译器是最新的VC++ 2013 RC.

int f(bool b)
{
    return {}; // OK
    return b ?  1  : { }; // C2059: syntax error : '{'
    return b ?  1  : {0}; // C2059: syntax error : '{'
    return b ? {1} : {0}; // C2059: syntax error : '{'
}
Run Code Online (Sandbox Code Playgroud)

为什么braced-init-list不能用于三元运算符?

这种行为是否被C++标准定义为不正确,或仅仅是VC++编译器的错误?

c++ initialization ternary-operator visual-c++ c++11

26
推荐指数
2
解决办法
1440
查看次数

将增量/减量运算符放在三元/条件运算符中是否安全?

这是一个例子

#include <iostream>
using namespace std;
int main()
{   
    int x = 0;
    cout << (x == 0 ? x++ : x) << endl; //operator in branch
    cout << "x=" << x << endl;
    cout << (x == 1 || --x == 0 ? 1 : 2) << endl; //operator in condition
    cout << "x=" << x << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0
x=1
1
x=1
Run Code Online (Sandbox Code Playgroud)

我理解输出,但这是不确定的行为?在任何一种情况下,评估顺序是否得到保证?

即使有保证,我也非常清楚使用递增/递减会很快成为可读性的问题.我只是问我看到类似的代码并且立即不确定,因为有很多关于递增/递减运算符的模糊/未定义使用的示例,例如......

c c++ increment ternary-operator decrement

26
推荐指数
3
解决办法
4436
查看次数