关于C#中的?表达式的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 03:23:59
有个问题,用if...else...写是这样的:

if(a>1)
{
b="123";
}
else
{
if(i==1)
{
ii="456";
}
else
{
ii="789";
}

if(j==1)
{
jj="098";
}
else
{
jj="765";
}
}

现在我想写成a>1?"":""的这种形式。

我的写法是这样的:

a>1?a="123":(i=1?ii="123":ii="456") a>1?a="123":(j=1?jj="098":jj="765")

这样写也是对的,但是不知道有没有更简介的写法?有的话怎么写?谢谢各位啦!

更易读的写法(举例):
a < 1e1 ? d = 1 :
a < 1e2 ? d = 2 :
a < 1e3 ? d = 3 :
a < 1e4 ? d = 4 :
a < 1e5 ? d = 5 :
a < 1e6 ? d = 6 :
d = -1;
无需括号,完全等价于
if(a < 1e1) d = 1;
else if(a < 1e2) d = 2;
......
else d = -1;

?:的写法已经算简洁了

这样简洁是简洁,但你不怕看的时候头疼,出错不容易检查吗,还是用SWICH吧

楼上说的对,用swich写比较好,一般多余两个条件以上的话最好用swich来写,这样容易查找错误