如果\ else梯子,可以简化其他条款吗?

发布于 2025-02-12 03:41:34 字数 783 浏览 0 评论 0原文

我有这个else子句:

else if (iItemIndex == 1 || iItemIndex == 3 || iItemIndex== 5 || iItemIndex == 7 ||
    iItemIndex == 10 || iItemIndex == 12 || iItemIndex == 14 || iItemIndex == 16 ||
    iItemIndex == 19 || iItemIndex == 21 || iItemIndex == 23 || iItemIndex == 25)

可以以某种方式简化它吗?代码没有错。只是好奇是否有一些详细的方法进行测试。在上下文中,我有:

if(iItemIndex == 0 || iItemIndex == 9 || iItemIndex == 18)
{
    // Do something
}
else if (iItemIndex == 1 || iItemIndex == 3 || iItemIndex== 5 || iItemIndex == 7 ||
    iItemIndex == 10 || iItemIndex == 12 || iItemIndex == 14 || iItemIndex == 16 ||
    iItemIndex == 19 || iItemIndex == 21 || iItemIndex == 23 || iItemIndex == 25)
{
    // Do something else
}
else
{
    // Do something else
}

I have thiselse clause:

else if (iItemIndex == 1 || iItemIndex == 3 || iItemIndex== 5 || iItemIndex == 7 ||
    iItemIndex == 10 || iItemIndex == 12 || iItemIndex == 14 || iItemIndex == 16 ||
    iItemIndex == 19 || iItemIndex == 21 || iItemIndex == 23 || iItemIndex == 25)

Can it be simplified in some way? Nothing wrong with the code. Just curious if there is a less verbose way of doing the test. In context I have:

if(iItemIndex == 0 || iItemIndex == 9 || iItemIndex == 18)
{
    // Do something
}
else if (iItemIndex == 1 || iItemIndex == 3 || iItemIndex== 5 || iItemIndex == 7 ||
    iItemIndex == 10 || iItemIndex == 12 || iItemIndex == 14 || iItemIndex == 16 ||
    iItemIndex == 19 || iItemIndex == 21 || iItemIndex == 23 || iItemIndex == 25)
{
    // Do something else
}
else
{
    // Do something else
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丢了幸福的猪 2025-02-19 03:41:34

如果可以

const bool rng=i>=0 && i<27;
if(const auto r=i%9; rng && !r) …
else if(rng && (r&1)) …
else …

假定值在相关的范围

if(const auto r=i%9; !r) …
else if(r&1) …
else …

You can write

const bool rng=i>=0 && i<27;
if(const auto r=i%9; rng && !r) …
else if(rng && (r&1)) …
else …

This can of course be much simplified if the value may be assumed to be in the relevant range:

if(const auto r=i%9; !r) …
else if(r&1) …
else …
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文