c - 有没有更好的方法来检查这两个变量而不是四个 ifs?
问题描述
必须有两个变量,例如 A 和 B,这两个变量取值 0 0、0 1、1 0 或 1 1。我需要检查这两个变量并返回 0 到 3 之间的值,有没有更好的这样做的方法比执行以下四个if
语句:
if(B == 0 && A == 0){
return 0;
}
if(B == 0 && A == 1){
return 1;
}
if(B == 1 && A == 0){
return 2;
}
if(B ==1 && A == 1){
return 3;
}
解决方案
您显示的四个条件可以用单行解决:
return A + B * 2;
也就是说,当然,如果A
andB
值永远不会0
是or以外的任何东西1
。
推荐阅读
- java - Android 的 MediaStore 中的 DATA 列还没有被弃用吗?
- r - 使用 R 将字符串的结尾移动到某些行的另一个变量字符串的开头
- cucumber - 在黄瓜的一个特征文件中运行多个背景
- swift - 插入数据时Swift Set类型性能不一致
- javascript - Quasar QDrawer 组件 - 防止关闭
- python - 哨兵日志记录集成可防止发送哨兵事件(Python)
- arrays - 如何在scala中将任何数据类型的数组转换为逗号分隔的字符串
- pandas - 如何从 lambda 的 tmp 文件夹中提取文件 .xlsx
- java - JTable中的自定义组合框不会设置选定的选项
- node.js - wbhook 通过 ngrok 连接到本地 node.js 服务器,服务触发 Webhooks 需要密码吗?