由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问4个开关的条件怎么用switch case
相关主题
c++的两个基本问题Scala的operator似乎不太好读
面试问题mxnet/tf的一个比较blog
operator执行顺序这道题有什么好思路?
ambiguous operators in c++一道c++ 题, 找出duplicate numbers
问个函数指针指向操作符的问题C++里 variable declaration 有什么用?
C语言里面的register变量能否进行取地址操作? (转载)两个C的#define问题
[C++] 入门级问题 increment and decrement operators请教一个程序调用的内存问题 (转载)
why copy assignment operator returns non-const type?请问如何写bitset or bitmap
相关话题的讨论汇总
话题: can1话题: can4话题: can2话题: can3话题: 执行
进入Programming版参与讨论
1 (共1页)
G***G
发帖数: 16778
1
四个开关
Can1,Can2, Can3,Can4
1)条件是Can1,Can2,Can3, Can4都是1的时候,执行A
2)条件是这四个有且只有3个是1的时候,
执行B1(对应Can1, can2,can3)
执行B2 (对应Can1,Can2, Can4)
.....
执行B4 (对应Can2, can3,can4)
3)条件是四个中有且只有2个是1的时候
执行C1 (can1, can2)
执行C2 (can1, can3)
...
执行C6 (can3, can4)
4)只有一个是1的时候
执行D1 (can1)
...
执行D4 (can4)
我的问题是,用if else 嵌套好,还是用switch case好?switch case怎么写这个算法?
谢谢!
s******y
发帖数: 416
2
binary vector

【在 G***G 的大作中提到】
: 四个开关
: Can1,Can2, Can3,Can4
: 1)条件是Can1,Can2,Can3, Can4都是1的时候,执行A
: 2)条件是这四个有且只有3个是1的时候,
: 执行B1(对应Can1, can2,can3)
: 执行B2 (对应Can1,Can2, Can4)
: .....
: 执行B4 (对应Can2, can3,can4)
: 3)条件是四个中有且只有2个是1的时候
: 执行C1 (can1, can2)

s********g
发帖数: 92
3
unsigned char sw=can4<<3 | can3<<2 | can2<<1 | can1;
switch(sw){
case 1:
//operation D1
break;
case 2:
//operation D2
break;
...
case 13:
//operation B2
break;
case 14:
//operation B1
break;
case 15:
//operation A
}

【在 G***G 的大作中提到】
: 四个开关
: Can1,Can2, Can3,Can4
: 1)条件是Can1,Can2,Can3, Can4都是1的时候,执行A
: 2)条件是这四个有且只有3个是1的时候,
: 执行B1(对应Can1, can2,can3)
: 执行B2 (对应Can1,Can2, Can4)
: .....
: 执行B4 (对应Can2, can3,can4)
: 3)条件是四个中有且只有2个是1的时候
: 执行C1 (can1, can2)

G***G
发帖数: 16778
4
how to create the binary vector?
use if else?

【在 s******y 的大作中提到】
: binary vector
G***G
发帖数: 16778
5
get it. thanks.

【在 s********g 的大作中提到】
: unsigned char sw=can4<<3 | can3<<2 | can2<<1 | can1;
: switch(sw){
: case 1:
: //operation D1
: break;
: case 2:
: //operation D2
: break;
: ...
: case 13:

S*A
发帖数: 7142
6
对,这个 mask 用个 macro 会好点,
不然哈格 1,2,3, 的 magic value 会很难读。

【在 s********g 的大作中提到】
: unsigned char sw=can4<<3 | can3<<2 | can2<<1 | can1;
: switch(sw){
: case 1:
: //operation D1
: break;
: case 2:
: //operation D2
: break;
: ...
: case 13:

n******n
发帖数: 12088
7
bitmap

【在 G***G 的大作中提到】
: get it. thanks.
t********6
发帖数: 348
8
为什么不把他们加起来,然后考虑 1 2 3 4 0 五种情况?

【在 G***G 的大作中提到】
: 四个开关
: Can1,Can2, Can3,Can4
: 1)条件是Can1,Can2,Can3, Can4都是1的时候,执行A
: 2)条件是这四个有且只有3个是1的时候,
: 执行B1(对应Can1, can2,can3)
: 执行B2 (对应Can1,Can2, Can4)
: .....
: 执行B4 (对应Can2, can3,can4)
: 3)条件是四个中有且只有2个是1的时候
: 执行C1 (can1, can2)

1 (共1页)
进入Programming版参与讨论
相关主题
请问如何写bitset or bitmap问个函数指针指向操作符的问题
问问Bitmap的问题C语言里面的register变量能否进行取地址操作? (转载)
嵌套循环,层数可变 怎么实现[C++] 入门级问题 increment and decrement operators
问一下bitmap sorting的问题why copy assignment operator returns non-const type?
c++的两个基本问题Scala的operator似乎不太好读
面试问题mxnet/tf的一个比较blog
operator执行顺序这道题有什么好思路?
ambiguous operators in c++一道c++ 题, 找出duplicate numbers
相关话题的讨论汇总
话题: can1话题: can4话题: can2话题: can3话题: 执行