逻辑运算:我想使逻辑运算容易
Logic Operations : I want to make Logic operations easily
本文关键字:逻辑运算 更新时间:2023-10-16
我想知道如何减少逻辑操作代码。
int a;
cin >> a;
if( a == 1 || a == 3 || a == 5)
printf("%d", a);
像这样修改上面的代码
int a;
cin >> a;
if(a == (1 || 3 || 5) )
printf("%d", a)
但你知道,它不起作用。
如何将此代码更改为更容易的形式?
我是@Beta -你已经有了最简单的形式。然而,如果您添加更多的"match"值,您可能会发现switch语句提供了一个更易于维护的结构:
int a;
cin >> a;
switch ( a )
{
case 1:
case 3:
case 5:
printf("%d", a);
break;
default:
// do nothing - not needed, but good habit
}
还有许多其他方法可以实现这一点-例如,您可以在set
中查找a
的成员关系(参见此答案)。每一种方法都有自己的优点和适合你的现实问题——"简单"是一个相对的术语。
使用数组可能比较好。
#include <cstdio>
#include <iostream>
using std::cin;
int main(void){
int a;
cin >> a;
{
static const int to_match[3] = {1, 3, 5};
bool yes = false;
for (size_t i = 0; i < sizeof(to_match) / sizeof(to_match[0]); i++) {
if (a == to_match[i]) {yes = true; break;}
}
if(yes)
printf("%d", a);
}
return 0;
}
相关文章:
- 使用C++中的模板和运算符重载执行矩阵运算
- C++选择排序算法中的逻辑错误
- GCC本机矩阵运算库
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 位阵列上的快速AND运算
- 字符串中int的加法运算
- 算术运算的结果类似于:C浮点变量中的1/3
- 如何使用OpenMP并行化此矩阵时间矢量运算
- 逻辑运算符上出现错误代码 a')'
- 提升有关逻辑运算的摩擦问题
- 在生成子序列时使用按位运算的逻辑是什么?
- C++随机数的逻辑运算结果
- 谁在Java或C++源代码中执行算术和逻辑运算
- 这个逻辑运算工作有什么问题?
- cout 中的逻辑运算
- 逻辑AND运算对流输出的作用
- 逻辑运算:我想使逻辑运算容易
- 这就是avx浮点位逻辑运算的原因
- C/ c++中对大文件二进制数据的逻辑运算