高分求教高手,多值情况下如何写出简练的代码,避免过多的if else判断:

benbenxiaoluchi 2008-12-22 03:53:36
有以下3个值,
int i = 0 or 1
int ii = 0 or 1
int iii = 0 or 1

现在要根据以下 8种情况返回不同值:

i ii iii 全为真
i ii 全为真
i iii 全为真
ii iii 全为真

i 自己为真
ii 自己为真
iii 自己为真

i ii iii 全为假


请问怎么写出精简的判断, 避免过多的if ?

...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongmg1986125 2009-01-02
  • 打赏
  • 举报
回复
把它当成二进制,然后求出它的值,根据值来判断其中哪几个为真。
绿色夹克衫 2008-12-23
  • 打赏
  • 举报
回复
如果要根据不同的情况,执行不同的程序,怎么样也需要进行一下判断。

lz把程序贴出来,让大家会诊一下吧!

[Quote=引用 4 楼 benbenxiaoluchi 的回复:]
呵呵 不想要if else 或者 switch case 有无其他方法?
[/Quote]
lioutou 2008-12-23
  • 打赏
  • 举报
回复
mark
test4ever 2008-12-23
  • 打赏
  • 举报
回复
这个全排列的条件覆盖问题,可以用混合进制来解决么?
h13826013646 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 litaoye 的回复:]
用位运算,将3个值换算为2进制123位,

比如:
i*4+ii*2+iii

直接判断该值即可!
[/Quote]
benbenxiaoluchi 2008-12-22
  • 打赏
  • 举报
回复
呵呵 不想要if else 或者 switch case 有无其他方法?
qq675927952 2008-12-22
  • 打赏
  • 举报
回复
up 学习了!
绿色夹克衫 2008-12-22
  • 打赏
  • 举报
回复
再补充一下,算出该值之后,可以用
switch case来判断,结构更清晰一些!
绿色夹克衫 2008-12-22
  • 打赏
  • 举报
回复
用位运算,将3个值换算为2进制123位,

比如:
i*4+ii*2+iii

直接判断该值即可!

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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