循环中存在多个条件
Multiple condition in for loop
在今天的一次代码审查中,我遇到了一个循环,看起来像这样:
for(int i=0; i<some_value && !found ; ++i)
{
if(some logic)
{
do_stuff();
found=true;
}
}
我通常把这种性质的东西编码成这样:
for(int i=0; i<some_value; ++i)
{
if(some logic)
{
do_stuff();
break;
}
}
我已经编程多年了,直到今天,我从未在for
循环中看到过不止一个条件。我知道这是一个非常有效的代码,因为&&
只是得到评估并返回结果,我根本没有想过在for语句中使用多个条件而不是正文。
直到今天我才看到这种情况,所以我必须假设它不是很常见。
在for循环检查中使用多个条件时,是否有需要注意的陷阱
有些"极端分子"将break
和continue
视为"被指控的"goto
的另一个词。许多Pascal/DDelphi程序员都属于这一派。
如果您应该使用这样的标志,这取决于您的编码惯例。我想,如果你在非学术背景下这样编码,人们不会认真对待你。注意!
当然,如果您想退出外部循环,或者您的语言不知道标记的循环,则需要这样的标志。例如,JavaScript和Java(我认为PHP也是)支持带标签的循环。
我不认为有任何陷阱。如果你的编译器不是太笨,它会确定这些标志的用法,并重写到代码中使用正确的跳转。
使用这样的标志(至少)有一个优点:它将更容易证明代码的正确性,例如使用霍尔演算。
你好,我是计算机科学专业的大四学生。我个人更喜欢在for循环中有多个约束。我觉得它有助于调试和降低错误。它是否更依赖资源?我不太确定。
相关文章:
- 模板元图.班级成员的条件存在
- 如果检查和内联条件之间是否存在编译器差异
- __has_include() 和后续 #include 之间是否存在争用条件
- 对条件表达式结果的赋值(其中第二个和第三个操作数是相同类型和值类别的变量)是否仍然存在?
- 根据成员变量的类型是否存在,有条件地定义该变量
- 放置多个条件时,循环是否存在限制
- 标准::condition_variable 中可能存在的争用条件
- 具有 3 个条件的 if 语句(三角形存在)
- 如果存在条件,是否有更简单的表示形式
- 检查前提条件是否存在原子增量,即原子值小于指定值
- 当只有一个线程写入 c++ 中的布尔变量时,是否存在争用条件
- 如何在Visual C++中有条件地包含一个不存在的文件
- C++ - 测试是否存在 DLL 以有条件地运行某些函数
- 在C++中,是否存在在特定条件下定义/运行宏的问题
- 循环中存在多个条件
- 存在多个条件时"IF"语句中的执行顺序
- if/else语句中存在多个条件
- 有条件地初始化一个结构体字段——仅当它存在于该结构体中时
- 如何声明在条件块之间持久存在的引用变量
- 在or条件语句中是否存在强制对两个表达式求值的模式或技巧?