c++ - 是否从 C++ 中的 for 循环不良做法返回函数值?

标签 c++ function loops control-flow principles

<分区>

我的同事刚刚看了我的代码并说,根据“某些标准”,从 for 循环返回函数值是不好的做法。

函数看起来像这样:

bool CentralWidget::isBitFieldFree(const QString& define, int lsb, int msb)
{
    QString defineWithoutIndex = getDefineWithoutIndex(define);
    for (int i = lsb; i <= msb; i++)
    {
        if ((registerBitMap[defineWithoutIndex] >> i) & 1)
            return false; //Returning here early...
        else
            registerBitMap[defineWithoutIndex] |= 1 << i;
    }
    return true;
}

问题:

  1. 是否有禁止这样做的标准?
  2. 这是公认的不良做法吗?
  3. 如果是这样:为什么?

最佳答案

的世界没有这样的标准.但是,在更具体的环境(例如公司)中,可能适用专门的标准。

话虽如此,总的来说,这不是坏习惯


a) a standard that bans this?

没有。

b) is this concidered bad practice?

没有。

c) 问题已经回答。


除此之外,它属于个人偏好的范围,这是我的 - 但这显然不是真正答案的一部分:

您想在遍历字符串后返回 true,那么如何在循环中优雅地做到这一点呢?使用 if 语句表示如果它是最后一次迭代,则在循环结束时返回 true

我认为这会毫无理由地在您的文件中放置更多代码行,并严重损害可读性。

关于c++ - 是否从 C++ 中的 for 循环不良做法返回函数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766561/

相关文章:

oracle - PL/SQL 在触发器内调用函数

javascript - 无法在 JavaScript 中更改图像的高度

java - 如何循环使用 mediaplayer - Android

c++ - union的用法和乱码

javascript - ui.draggable 显示确认是否被取消。

c++ - 涉及函数的C++程序...请帮助我

loops - SPSS 创建一个循环以对多个变量进行多元回归

c# - 处理具有重复逻辑的冗余代码的最佳方法?

c++ - 为什么 Visual Studio 编译器说我的 C++ 函数中缺少分号?

c++ - 在结束运行之前在 C++ 中获取 shell 命令输出