gpt4 book ai didi

c++ - 对于可能在结束前被中断的迭代,使用什么循环?

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:07 24 4
gpt4 key购买 nike

我有一定范围的内存要解析。如果我在结束之前找到某个字节序列,我会中断迭代。我想知道在这里我应该更喜欢哪个循环:

while(i < end && !sequenceFound ) {
// parse
i++;
}

或者

for( i; i < end && !sequenceFound; i++ ) {
// parse
}

这用于从实现环形缓冲区的类派生的类的方法中。父类(super class)提供iend。我的问题是,您认为对于不熟悉代码的人来说,哪一个更容易理解(更好地表达意图)?

编辑 我发现序列的事实是进一步解析流所必需的。我可以使用 break 并设置 sequenceFound = true,但这会是多余的,还是我在这里太严格了?

最佳答案

为什么不在遇到需要“中断”循环的时候使用break;。这似乎是最能表达您的意图的语言功能。这通常意味着您可以不用额外的 bool 状态跟踪变量。

如果您需要知道迭代是否提前终止,您可以使用条件 i != end。 无论哪种方式,使用最清晰的控制方法似乎是最好的,break; 在你想要中断的那一点对我来说似乎最清楚,无论你是否维护一个“提前退出”变量。继续循环并测试您刚刚保证会失败的条件似乎是多余的。

关于c++ - 对于可能在结束前被中断的迭代,使用什么循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3778111/

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