if多层嵌套可以用什么格式替换

opm161 2016-01-18 10:51:15
有一个代表“步”的数组,step[3]={step1,step2,step3}
目前的做法是
if (step1=1)
{
if(step2=1)
{
if(step3=1)
{
//代表第三步
}
else
{
//代表第二步
}
}
else
{
//代表第一步
}
}
这种方式在补数少了的话还可以凑活用,但当步数多的话,这个嵌套都晕了。
看了可以采用

IF(STEP1&&STEP2&STEP3)的这种方式,但还是不太理想。想着可以用一种数据结构的方式,比如转换成二进制的方式。但不知道怎么实现,望高手指点
...全文
351 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你这个数组与步数索引对应关系很明确啊 而且看你逻辑,应该是到第几步,前面的都会是1,所以可以反向循环,下面是正向循环
for(var i=0;i<step.Length;i++)
{
      if(step[1]!=1)
      {
//走了i步
      }
}
xdashewan 2016-01-18
  • 打赏
  • 举报
回复
把所有步骤写进一个函数,用switch或者if else方式,函数参数为步数。调用时候对数组反向迭代,从最大下标开始判=1,调用函数循环退出。
Poopaye 2016-01-18
  • 打赏
  • 举报
回复
为什么不用 step = 1,step = 2,step = 3 这样的呢?
opm161 2016-01-18
  • 打赏
  • 举报
回复
想复杂了 应该直接判断step3等于1的情况,这样前面的STEP1和STEP2可定都等于1

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧