我知道,每个人都讨厌 GOTO,也没有人推荐它。但这不是重点。我只想知道,哪个代码最快:
goto
循环int i=3; loop: printf("something"); if(--i) goto loop;
while
循环int i=3; while(i--) { printf("something"); }
for
循环for(int i=3; i; i--) { printf("something"); }
最佳答案
一般来说,for
和while
循环被编译为与goto
相同的东西,因此通常不会有什么不同。如果您有疑问,您可以随意尝试所有这三个,看看哪个需要更长的时间。很可能您将无法衡量差异,即使您循环十亿次也是如此。
如果你看this answer ,您会看到编译器可以为 for
、while
和 goto
生成完全相同的代码(只是在这种情况下没有条件)。
关于C/C++ : is GOTO faster than WHILE and FOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366929/