一个关于三木运算符的问题
原型:
Test t = new Test();
if (t.str == "1")
p = "11";
else if (t.str == "2")
p = "22";
else if (t.str == "3")
p = "33";
switch (t.str)
{
case "1":
p = 11;
break;
case "2":
p = 22;
break;
case "3":
p = 33;
break;
default:
break;
}
三元需要返回值,p 放前面
p = t.str == "1" ? "11" : (t.str == "2" ? "22" : "33");
or
p=t.str ==
"1"
?
"11"
:t.str ==
"2"
?
"22"
:
"33"
;
三木运算符的优先级是从右到左
三目运算符,前边 ?前边条件成立则返回 :前的值,不成立则返回后边的值,,,,有许多程序都用了这个特性,比如下边:js 和 c#
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
?运算符:?运算符也成为null合并运算符.?运算符的左操作数如果不为null,则返回左操作数。反之,则返回右操作数。
三木运算符(js):
var a=2;
var b="";
a=(a?a:b);
当a为false、undefined、null或空字符串时,返回b;否则返回a;
三木运算符(C#):
int a=10;
int b;
b=(a==10)?a++:a--;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------