gpt4 book ai didi

c++ - 编写嵌套二进制分支逻辑的可读方法是什么

转载 作者:太空狗 更新时间:2023-10-29 19:53:52 26 4
gpt4 key购买 nike

我有一些看起来像的逻辑

if(a){
if(b){
if(c){
//do something
}else{
//do something
}
}else{
if(c){
//do something
}else{
//do something
}
}else{
if(b){
if(c){
//do something
}else{
//do something
}
}else{
if(c){
//do something
}else{
//do something
}
}

将其实现为可读逻辑的最佳方式是什么?我不想做一些大的 OOP 手术来使其可读,因为做某事只是一个类轮。赞赏 C/C++ 中的解决方案

最佳答案

由于条件是 bool 值,并且显然是独立的,因此将它们视为一个字中的位并切换它们:

#include <cstdio>

#define COMPOSE(a,b,c) ( ((!!(a)) << 2) | ((!!(b))<<1) | (!!(c)) )

int f(int i, int j, int k) {

switch(COMPOSE( i==j, i+j<k, k!=42)) {
case COMPOSE(true, true, true):
printf("yo\n");
break;
case COMPOSE(true, true, false):
printf("ye\n");
break;
case COMPOSE(true, false, true):
printf("ya\n");
break;
}
}

int main () {
f(1,1,1);
}

关于c++ - 编写嵌套二进制分支逻辑的可读方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com