继续循环内部if语句与使用循环内if语句的否定

Mua*_*uaz 4 syntax optimization loops continue execution

例如,让我们考虑以下2个代码:

for (i = 0; i < 1000; i++)
{
   if ( i % 2 != 0)
   {
       continue;
   }
   else
   {
     ...  
   }    
}
Run Code Online (Sandbox Code Playgroud)

for (i = 0; i < 1000; i++)
{
   if (i % 2 == 0)
   {
     ...  
   }    
}
Run Code Online (Sandbox Code Playgroud)

两者都会导致相同的结果.那么哪一个使用?哪一个更好?这两者之间是否存在显着的性能差异?让我们看看你们看到了什么.我喜欢我在这里看到的关于这些事情的讨论.这可能会导致更好的代码编写和更好的执行时间.我发布了这个问题,因为我找不到答案.如果我找不到答案,我可能会在将来发布另一个这样的人.

PS什么是你可以在没有它的情况下继续使用循环的目的?

Cod*_*ray 5

在这个具体的例子中?使用continue任何东西都没有任何意义.

正如您所提到的,两个代码示例都会产生完全相同的结果.并且它们都不会比另一个更快.

你决定选择哪一个应该基于可读性和清晰度,而不是某种误导的"优化"尝试.考虑到这一点,第二是远远清晰.我真的质疑在真正的代码库中使用第一个的人的编程排版.

作为一个基本准则,永远不要使用if-else单一的if时间.在这种情况下,你正在比较!=,然后用一个else语句找到相反的- 这几乎就像说!(!=),产生双重否定.很难阅读或理解.一般来说,你应该试着在一个陈述中评估积极的条件if,而不是消极的条件,以防止这种情况.

并且没有理由发布与此类似的其他问题.所有答案都是一样的.忽略任何可能的性能差异(如果一个甚至存在,这是非常不可能的,给定优化编译器),并关注哪个版本最适合作为必须阅读它的人.请忽略向您提供相反建议的任何人.